




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
盐 城 师 范 学 院毕业设计基于iOS移动端的旅游大全的设计与开发学生姓名 学 院 信息工程学院 专 业 软件工程 班 级 学 号 指导教师 2016 年 5月 16日盐城师范学院毕业设计基于iOS移动端的旅游大全的设计与开发摘 要随着当今时代经济的告诉发展,人们已不再单方面的追求物质生活,转向对精神生活的极度追求。享受精神生活,旅游便成了最好的追求途径。在旅游的同时,即能享受我国的大好河山,美丽精神,又你能陶冶情操,净化心灵,畅游于精神的海洋。但是我国地大物博,游览圣地数不胜数,在合适的天气选择合适的景点游览成为一大烦恼。此时,旅游大全app便应运而生。使用旅游大全,不仅能够实时查询全国各地的天气情况和未来天气预报,囊括了全国大部分的旅游景点介绍与资讯,还可以为你推荐丰富的城市旅游路线,让你感受各地的城市文化,异域风光,让人们不再有选择困难症,更加方便地旅游出行。本系统共分3大查询模块和个人中心模块,基于Objective-C和iOS语言编码,结合CoreData数据模型存储数据,利用Xcode工具实现编码,采用MVC三层架构模式开发编写,以用户的方便使用为核心,力求设计出一款方便快捷的旅游查询系统。【关键词】旅游;天气查询;城市旅游;景点;iOS全套设计加扣 3012250582Design and development of Tourism Encyclopedia based on iOS mobile terminalAbstractWith the development of economy in modern times,People have no longer one-sided pursuit of material life, turning to the extreme pursuit of spiritual life。Enjoying the spirit of life, tourism has become the best way to pursue。In tourism at the same time, we can enjoy the great rivers and mountains of China, the spirit of beauty, and we can edify sentiment, purify the mind, swim in the spirit of the ocean. But China is a vast land, tour numerous shrines, in suitable weather choosing suitable attractions tour to become a major annoyance。At this point, the tourism encyclopedia app came into being。Using Tourism Encyclopedia can not only real-time query across the weather conditions and forecasts of future climate, include the most of the tourist attractions and information, can also recommend rich city tourist routes for you and make you feel around the city of culture, exotic scenery, let people no longer have the option of dyslexia, more convenient travel。This system is divided into three query module and a personal center module, based on Objective-C and IOS language code, binding CoreData data model to store data, using Xcode tools for the realization of the code, written using MVC three-tier architecture development, to convenient user use as the core, and strive to design a fast and convenient travel query system。Keywords Tourism, Weather query, Urban tourism, Scenic, iOS盐城师范学院毕业设计目 录1 课题研究11.1研究的背景及意义11.2研究思路11.3课题的主要内容12可行性分析22.1可行性分析22.2预期目标23需求分析33.1功能模块分析33.2关键技术分析43.2.1主要语言简介43.2.2数据持久化存储53.2.3第三方框架53.3开发环境搭建74数据库设计74.1概念结构设计74.2逻辑结构设计85系统功能实现95.1天气查询系统95.1.1主界面实现95.1.2天气详情页面实现115.1.3天气资讯页面实现125.2城市旅游路线查询系统135.2.1主界面实现135.2.2城市一日游详情页面实现155.2.3查询城市游玩路线详情页面实现185.3景点查询系统185.3.1主界面实现185.3.2景点详情页面实现205.4个人中心(会员功能)215.4.1填写个人信息功能215.4.2关于产品功能226系统功能测试256.1天气查询测试用例256.2城市旅游路线查询测试用例256.3个人中心测试用例25结 论26参考文献28致 谢291 课题研究随着物质生活的提高,人们开始追求享受精神生活。游览名胜古迹,山水风景便成了最佳途径。重踏先人的古迹,寄情山水,畅游于精神的海洋。本设计以Objective-c语言和iOS移动操作系统为核心,OC语言是一门基于C的完全面向对象的语言,良好的跨平台性,iOS则是开发苹果App应用的必备操作系统。引入开源的第三方框架辅以实现页面效果,利用CoreData数据模型存储数据,采用MVC三层架构思想,模型、视图、控制器,通过控制器连接模型和视图,提升代码复用性。1.1研究的背景及意义如今已是互联网时代,大数据趋势愈演愈烈,信息资源高速发展,互联网成为生活中不可替代的一部分。对旅游出行的朋友来说,高效、准确的旅游信息可以省去不必要的麻烦,让旅游出行不再选择困难。旅游大全App是提供人们实时查询各地天气情况,景点咨询,城市旅游路线多功能于一体的软件,高效,快捷,提供人们在合适的天气游玩合适的景点。将互联网数据信息应用于旅游,为人们创造高度信息化的旅游服务平台。1.2研究思路本系统思路清晰,主要着重于三大查询系统功能的实现和一个个人中心的设计。在前期的需求分析中已从百度API Store中获取需要的数据接口,进而对整个系统进行概要设计和详细设计,对CoreData数据模型实现表与表之间的关联关系,然后对三大功能模块分别进行设计,功能模块拆分,采用MVC思想,模型管理实体,视图展现给用户所见页面,通过控制器实现实体与视图的交互,接下来实现代码,尽量实现代码复用,减少代码重复率,最后对各个功能进行测试,解决bug,力求该App最小漏洞化,给出测试用例报告。1.3课题的主要内容本系统采用OC和iOS语言,实现三大查询功能和一个个人中心的管理功能,希望能够实现一下内容:1、 实时查询全国各地天气情况,未来3天天气预报及生活贴士小助手;2、 像用户推荐全国各大城市的旅游路线,欣赏城市风光,地图定位;3、 查询全国大部分景点咨询,开放时间,票价及景区图片欣赏;4、 个人中心可以填写个人信息,修改密码,投诉建议并且分享软件;5、 管理员能够查看和回复投诉与建议。2可行性分析2.1可行性分析由于目前市场上有很多相似类型的app,例如途牛,携程,同城等,所以本系统在逻辑功能层面上来说是可以实现的。网络数据方面,主要依赖于百度API Store上的免费数据接口实现。本系统是应对于毕业设计而设计,故而个人中心与管理员模块都是基于本地存储实现,并无服务器上传,亦可简单实现。至于页面中的特效方面,基于许多免费开源的第三方框架实现,也是十分方便。而操作方面而言,本系统属于手机客户端app,拥有一般app的特性,操作简单,人机交互十分快捷,无操作难点。本系统是基于OC和iOS语言编写,CoreData存储数据模型,MVC思想模式控制系统方向,在技术方面来说是完全可以实现的。2.2预期目标经过我与指导老师的共同探讨之后,希望本系统能够实现以下功能:1) 界面美观清晰,操作简单,人机交互便利;2) 实时查询全国各地城市天气情况及未来3天天气情况;3) 对于各种天气情况查看相应的天气小贴士,方便人们的生活;4) 实时查询全国各地大部分景点咨询,开放时间及票价,浏览景区图片;5) 实时向用户推荐全国各大城市的旅游路线,衣食住行,地图定位,浏览城市风光;6) 个人中心用户可以填写个人信息,修改密码,反馈建议与投诉并查看回复,分享软件;7) 管理员能够查看并用户的建议与投诉3需求分析所谓“需求分析”,就是对整个设计所需的问题进行详细分析,找出每个问题解决的方法。本课题需求分析主要分为三大系统功能和一个个人中心。三大系统功能分别为天气查询系统,城市旅游路线规划和景点查询系统。个人中心包括用户和管理员两个角色,分别有不同权限。3.1功能模块分析本课题功能模块主要分为三大系统功能和一个个人中心。三大系统功能分别为天气查询系统,城市旅游路线规划和景点查询系统。个人中心包括用户和管理员两个角色,分别有不同权限。分享软件分享软件分享软件建议投诉填写信息用户管理员个人中心搜索景点咨询热门景点咨询搜索城市路线规划热门城市一日游热门城市天气预报搜索城市天气预报景点查询路线规划天气查询 旅游大全图3-1 系统功能设计图本系统中的角色分为管理员和普通会员,普通会员可以填写个人信息,修改密码,反馈建议与投诉,查看回复和分析软件功能。管理主要有查看所有用户的建议与投诉并进行回复。普通用户和管理员的用例图如图3-2,3-3。图3-2 普通用户用例图图3-3 管理员用例图3.2关键技术分析3.2.1主要语言简介Objective-C,就是我们俗称的OC语言,是继承于C的面向对象编程语言。OC具有面向对象的语言三大特性:封装、继承、多态 1,是一门非常不错的编程语言,完全符合本系统的设计要求。iOS,是苹果公司开发的应用于iPhone、iPad上的移动操作系统 2,本系统便是基于iOS实现。3.2.2数据持久化存储CoreData是iOS5之后自带的数据持久化框架,它提供了类似mysql数据库提供的增删改查的基本功能,方便地完成对象与数据之间的相互转化,方便快捷。图3-4 CoreData核心图3.2.3第三方框架1) AFNetworkingAFNetworking是一款强大的用于发送接收HTTP请求并能够解析多种数据类型的开源的第三方框架,本系统中的请求网络数据部分都是基于此框架实现。此段代码过长,将会在下文具体用到处讲解。2)SDWebImageSDWebImage类库能够加载网络图片,能够实现对图片的缓存,异步下载的功能。通过图片的地址便能够直接下载图片显示出来,本系统中的图片加载皆基于此开源框架实现。使用示例:imgView sd_setImageWithURL:”” placeholderImage:UIImage imageNamed:loading.jpg;3)YLGIFImageYLGIFImage是能够异步加载GIF动态图片的第三方框架,内存消耗小,为达美观效果,本系统中的天气详情页面中的动态背景图片使用到此框架。使用示例:bgImgView.image=YLGIFImage imageNamed:dongtai.gif;4)MJRefreshMJRefresh是当下十分流行的下拉刷新控件的第三方框架,可以自定义刷新时显示文字或图片,能够满足大部分需求,本课题中的tableview刷新都是基于此控件实现。使用示例:1.添加头部控件的方法tableView addHeaderWithTarget:self action:selector(headerRereshing);2.添加尾部控件的方法tableView addFooterWithTarget:self action:selector(footerRereshing);3.自动进入刷新状态tableView headerBeginRefreshing;4.结束刷新tableView headerEndRefreshing;图3-5 刷新效果图5)ShareSDKShareSDK是开发iOS应用中一种十分常见的分享化第三方框架,许多公司在开发十都会用到此框架。该框架可以分享包括QQ、微信、新浪微博、腾讯微博等各大主流社交平台,帮助开发者很容易就能够实现社会化分享、登录、关注。本课题中个人中心中的分享软件运用到此框架,能够分享至新浪,腾讯微博。使用示例: id publishContent = ShareSDK content:我正在使用旅游大全app,你也快来吧! defaultContent:测试一下 image:ShareSDK imageWithPath:imagePath title:旅游大全 url: description:这是一条测试信息 mediaType:SSPublishContentMediaTypeNews; id container = ShareSDK container; container setIPadContainerWithView:self.view arrowDirect:UIPopoverArrowDirectionUp;6)RatingBarRatingBar用星星来显示评级等级。本系统中景点与城市旅游路线都用到此功能,像用户展示推荐等级。使用示例:RatingBar *bar = RatingBar alloc initWithFrame:CGRectMake(0, 5, 130, 25);bar.starNumber = 5;bar.enable = NO;3.3开发环境搭建本课题以OC语言为基础,基于iOS运行,所以需要Apple公司研发的Mac OS系统支持即MacBook,Mac mini,iMac,以Xcode代码编辑器为核心开发,其中CoreData为Xcode自带小型数据存储功能,无需Mysql数据库。4数据库设计本系统采用CoreData3数据模型存储数据。Core Data不是一个真正的数据库,只是一个提供对象存储的数据模型,同样拥有增删改查的功能。它可以使用SQLite作为持久化存储的类型。CoreData能够减少内存的使用空间。下面就详细介绍了本课题的数据模型设计以及具体的字段值。4.1概念结构设计经过前期需求分析可知,本课题中包含会员信息表,投诉表,建议表,其中的关系图4-1所示。图4-1 数据关系类图4.2逻辑结构设计依据本系统的前期设计以及需求,设计如下几张表:表4-1会员信息表(personInfo)结构字段描述数据类型长度主外键uid用户idstring20主account账号string20password密码string20nickname昵称string20headimage头像string20realname真实姓名string20phone手机号码string11email邮箱string20suggestion建议string500外complaint投诉string500外表4-2 建议表(Suggestion)结构字段描述数据类型长度主外键id建议idstring20主suggestion建议内容string500date建议日期string20answer回复内容string500uid用户idstring29外表4-3 投诉表(Complaint)结构字段描述数据类型长度主外键id投诉idstring20主complaint投诉内容string500date投诉日期string20answer回复内容string500uid用户idstring20外5系统功能实现本系统共包括天气查询,景点查询,城市旅游路线推荐三大系统功能模块和一个个人中心模块,下面将一一讲述。图5-1 系统功能模块图5.1天气查询系统5.1.1主界面实现天气查询功能首页用tableView展示热门城市的天气情况,顶部为NavgationBar,textField提供用户输入所查询的城市,查询按钮触发查询事件,如图5-2所示:图5-2 天气系统首页UITableViewCell中元素分别是城市名,日期,发布时间,天气情况,温度和天气对应的图像。其中日期、发布时间、天气情况和温度是从网络接口中获取数据,通过json数据转化成字典,代码如下:NSString *htm=operation.responseString;NSData* data=html dataUsingEncoding:NSUTF8StringEncoding;/json格式数据转换id dict=NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil当用户输入完想要查询的城市天气点击搜索按钮时,触发查询事件,发送网络请求,获得相应数据,若成功执行则会跳转到天气详情页面,若失败则会提醒用户无查询结果,代码和热门天气类似,下面给出接口地址和参数:接口地址:/heweather/weather/free?city=%参数:city 城市名称在成功返回json数据解析后,将返回数据data转化成NSDictionary字典类型,其中包括6个key:aqi(空气质量),basic(基本情况),daily_forecast(未来7天天气预报),hourly_forecast(未来小时天气预报),now(当前天气情况),status(数据返回状态),suggestion(天气贴士)。当用户输入完成之后关闭系统键盘,代码如下。 UIApplication sharedApplication.keyWindow endEditing:YES; 上下滑动tableView时,需要设置header的悬浮效果,否则会给用户视觉上不好的体验,此代码主要通过控制上下滑动scrollView时改变滑动范围和位置来达到悬浮效果。在scrollViewDidScroll方法中添加2个判断条件即可,代码如下。if (scrollView.contentOffset.y=0) scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);else if (scrollView.contentOffset.y=sectionHeaderHeight) scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);5.1.2天气详情页面实现天气详情页面向用户展示多个数据元素:当前温度,最高最低温度,pm2.5数值,空气质量,跳转到生活贴士的按钮,未来3天的天气预报,页面效果如图5-3所示。此页面中元素较多,所以将页面从上至下分割为4个view,每个view分别做适配,将这些元素添加至不同view中,采用绝对位置坐标控制元素的位置,达到能够适应不同大小的屏幕,由于代码内容比较多,在此不列出。当前天气和未来3天天气预报由4个自定义button实现,button上包括image和string字符串,需要自定义类继承UIButton,重写layoutSubviews方法,实现图像在上,字符串在下的效果,代码如下。-(void) layoutSubviews super layoutSubviews; /1.获取按钮大小 CGRect r=self.bounds; /2.设置图像高度CGRect rImage=r.size.width/4,15,r.size.width/2,r.size.width/2; self.imageView.frame=rImage; /3.设置字体 CGRect rTitle=0,r.size.width/2,r.size.width,r.size.height-r.size.width/2; self.titleLabel.frame=rTitle;在页面中利用for循环给4个button赋值,页面中用到了daily_forecast和aqi字段。图5-3 天气详情页面5.1.3天气资讯页面实现天气资讯页面内容由tableView展示,采用xib文件自定义tableViewCell的方法加载,页面布局灵活,页面如图5-4所示:图5-4 天气咨询页面tableView中有2个section,section0,展示今日风向;section=1,展示今日建议,其中,利用xib方式加载tableViewCell的代码如下:NSArray *array=NSBundle mainBundleloadNibNamed:Cell owner:self options:nil;cell=array objectAtIndex:0;5.2城市旅游路线查询系统5.2.1主界面实现城市旅游路线查询功能首页用tableView展示热门城市一日游旅游路线情况,顶部为NavgationBar,textField提供用户输入所查询的城市,点击搜索按钮发送请求,如图5-5所示。图5-5 路线规划首页tableViewCell中的元素包括了:城市名,星级评价,城市简介,路线名称和城市标志性照片,其中星级评价,城市简介和路线名称是从接口中返回的数据,发送数据请求也是利用AFNetworking框架实现,请求代码类似,下面给出请求接口和参数:接口地址:/apistore/travel/line?location=%&day=%&output=json参数:location 城市中文名称 day 游玩天数 output 返回数据格式,默认为json其中城市简介和路线名称返回的是NSString类型字符串,用UILabel显示。由于字符串内容动态改变,所以只有先确定字符串内容的高度,才能确定label高度,最终确定tableViewCell高度,下面给出如何动态计算字符串高度的代码。#pragma mark 动态计算label高度-(CGFloat)labelHeight:(NSString*)str withWidth:(CGFloat)width withFont:(UIFont *)font CGRect tmpRect=str boundingRectWithSize:CGSizeMake(width, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName,nil context:nil; return tmpRect.size.height;函数返回类型为CGFloat类型的浮点数,即字符串高度,传入的参数分别是字符串内容,label宽度,字符串大小。点击搜索按钮触发搜索请求与上述请求代码类似,只是参数不一样,下面给出接口地址与参数说明。接口地址:/apistore/travel/line?%location=%&day=%&output=json参数说明:location 城市中文名称day 天数output 数据输出格式,默认为json5.2.2城市一日游详情页面实现城市一日游详情页面包括了4个子页面:城市简介,路线详情,景区图片,经典地图,每个页面的公共部分包括了:星级评级,通往详情页面的链接,推荐路线名称。4个子页面通过UISegmentedControl控件实现相互切换。城市简介子页面介绍了该城市的历史文化背景;路线详情页面描述了推荐路线的具体内容,包括衣食住行,内容全面;景区图片可以浏览美丽的风景,图片是发送请求从网络获取的url,通过SDWebImage框架直接加载,发送请求获取数据额代码与之前发送代码请求一致,这里给出请求的接口地址与参数:接口地址:/qunartravel/travellist/travellist?%query=%&page=1参数:query 城市中文名称page 页码景点地图可以定位当前城市的位置,地图可以移动缩放。下面将讲述如何使用地图功能4。首先,需要询问移动设备即iphone是否同意该app使用定位功能(在ios8之后需要调用),只有用户同意使用定位功能,才可以使用地图。#pragma mark询问是否打开定位功能代码:/在ios8需要调用if (!CLLocationManager locationServicesEnabled) NSLog(您尚未开启定位服务功能!);地图功能还需要设置地图定位精度,移动更新距离,显示的地图风格,地图缩放,滚动,交互和显示用户当前位置。下面设置地图中心点,城市所在地,通过请求的网络数据能够返回城市的经纬度,通过经纬度可以确定地图中心点所在位置,下面给出代码:#pragma mark 标记点信息-(void)addAnnotation:(CLLocation *)tLoc geocode reverseGeocodeLocation:tLoc completionHandler:(NSArray *placemarks, NSError *error) /判断数组是否为空,是否有错误 if (placemarks.count0&error=nil) /取出Place mark,地址信息对象 CLPlacemark *clPlace=placemarks objectAtIndex:0; /测试变量表达的是什么地址 NSString *title=clPlace.thoroughfare; NSString *subTitle=clP; CLLocationCoordinate2D center=tLoc.coordinate; /给地图添加锚点信息 MKPointAnnotation *mkPoint=MKPointAnnotation allocinit; /添加弹出标题 mkPoint.title=title; /子标题 mkPoint.subtitle=subTitle; /设置锚点的经纬度(坐标信息) mkPoint.coordinate=center; mapView addAnnotation:mkPoint; ;当用户对地图进行移动拖拽时,地图数据会实时更新,显示新的数据,只需要在didUpdateLocations方法中加入以下代码: CLLocation *tLoc=locations lastObject; /通过location对象解析出地址 self addAnnotation:tLoc; CLLocationCoordinate2D center=tLoc.coordinate; /设置范围 MKCoordinateSpan span; span.latitudeDelta=0.01; span.longitudeDelta=0.01; /构造mapview使用的区域结构体 MKCoordinateRegion region=center,span; mapView setRegion:region;图5-6 地图锚点效果图5.2.3查询城市游玩路线详情页面实现当用户主动输入其他城市查询游玩路线时,由于游玩天数的不确定性,将返回各种游玩天数所推荐的路线,供用户多项选择。该页面大体和一日游玩详情页面相似,只是其中的路线详情子页面稍作调整,用tableView显示游玩路线,如图5-7所示:图5-7 路线详情子页面tableView中每个cell的section具有展开和闭合功能,第一次进入路线详情子页面时展开第1个section,其余section处于闭合状态,如上图所示。用户可以点击展开闭合任意section,实现方法是:自定义每个section的header视图,将每个header设计成一个button,给button添加tag值,通过button的touchUpInside事件触发,通过标识符数组来判断是展开还是闭合。5.3景点查询系统5.3.1主界面实现景点查询功能首页用tableView展示热门景点,顶部为NavgationBar,textField提供用户输入所查询的景点,点击搜索按钮发送请求,如图5-8所示。图5-8 景点查询系统主界面tableViewCell中的元素包括了:景点名称,星级评价,景点简介,标志性照片,其中星级评价,景点简介是从接口中返回的数据,发送请求的代码与之前一样,给出不同的接口地址和参数:接口地址:/apistore/attractions/spot?%id=%&output=json参数:id 景点名称(拼音)output 数据返回格式,默认为json该景点查询系统功能,由于接口参数限制,必须使用景点拼音才能正确发送http请求,当用户主动输入查询景点时造成极大的不方便,因为用户不会去输入拼音,而是直接输入汉字,于是我寻找到了一个接口地址,可以将汉字转化成拼音,下面给出汉字转拼音的接口地址和参数:接口地址:/xiaogg/changetopinyin/topinyin?str=%参数:str 景点中文名称通过此接口,充当了中间跳板,用户可以直接输入汉字便可直接查询。但是此接口也有小的瑕疵,就是传回的拼音中间会有空格,所以需要下面的方法去除拼音中的空格。NSString *str=html stringByReplacingOccurrencesOfString: withString:;5.3.2景点详情页面实现该页面包含了景点推荐度,联系方式,景点描述,门票&开放时间和景区图片,其中的数据接口请求和首界面请求完全一样,在此不再描述,页面效果如图5-9。图5-9 景点详情页面在此页面中,tableView实现了隐藏剩余tableViewCell的操作,达到美化页面的效果,即给tableView的footView添加一个背景色为clear的透明背景,实现代码如下:UIView *view = UIView new;view.backgroundColor = UIColor clearColor;self.tableView setTableFooterView:view;页面中的展开闭合的操作步骤和城市路线详情中相同,代码就不一一列出。5.4个人中心(会员功能)本系统数据存储虽然都是基于本地操作,但是功能还算完善,具有一定实现意义。个人中心角色分为会员和管理员,会员可以填写个人信息,修改密码,反馈投诉与建议,分享软件,修改个人头像;管理员可以查看会员的头绪与建议并回复。由于本系统会员中功能较多,论文中无法一一叙述,只能选取比较有特点的几个功能实现。5.4.1填写个人信息功能个人信息中包含了昵称,姓名,手机号码,邮箱和修改头像,其中昵称,姓名,手机号码和邮箱都是保存至CoreData的PersonInfo表中,而头像根据用户的唯一标识符uid保存至沙盒中。保存到CoreData中的操作与之前类似,根据uid确定用户,用 setValue forKey的方法进行赋值保存。修改头像的数据源来自照相机拍摄和相册,用户可以任意选择,这里则需要调用系统自带的相册和照相机功能。首先判断设备是否允许该app使用照相几功能,如用户不允许,则数据源单一来自于相册。然后弹出UIAlertController提示栏,选择是照相机还是相册,点击之后利用UIImagePickerController控件显示全部照片,用户选择照片后能够在显示头像处显示,并将照片以用户唯一标识符uid命名保存到沙盒中,方便下次读取。下面给出具体实现代码:#pragma mark 选择头像-(void)pickImage _weak _typeof(self)weakSelf = self; UIAlertController *sheet; /判断是否支持相机 if (UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera) else sheet=UIAlertController alertControllerWithTitle:选择头像 message:nil preferredStyle:UIAlertControllerStyleActionSheet; UIAlertAction *otherAction=UIAlertAction actionWithTitle:从相册中选择 style:UIAlertActionStyleDefault handler:(UIAlertAction *action) /跳转到相册页面 UIImagePickerController *imagePickerController=UIImagePickerController alloc init; imagePickerController.delegate=weakSelf; imagePickerController.allowsEditing=YES; /从图库中选择 imagePickerController.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum; /弹出相册 weakSelf presentViewController:imagePickerController animated:YES completion:nil; ;上述涉及到了保存数据到沙盒的方法,原理就是读取用户文件主目录,将数据写进目录中即可。从沙盒中读取数据的方法与保存类似,只要知道需要读取的文件正确的名称即可。5.4.2关于产品功能关于产品这一项中包含了功能介绍,分享软件,关于旅游宝典和客服电话四项功能,这里主要介绍分享软件和拨打电话的功能。图是5-10关于产品的界面图:图5-10 关于产品界面图关于分享软件的功能,引入了现在十分流行的ShareSDK的第三方开源框架,下面着重介绍。在本系统中ShareSDK可以分享至新浪微博,腾讯微博和微信使用,使用示例代码已在3.2.3第三方框架小节中给出,主要步骤分为:构造分享内容,创建弹出菜单容器,弹出分享菜单,效果图如5-11,5-12所示:图5-11 分享菜单容器图5-12 分享视图用户第一次分享时需要输入相应的社交软件账号密码才能成功,而如果以后每一次都需要输入账号密码是极为不方便的,所以需要在该系统中设置一项属性,让系统能够记住账号密码,无需重复输入,具体操作如下:项目TAGETS-info-URL Types,添加三个URL属性内容:社交标识符+AppKey,如图5-13所示:图5-13 URL配置图系统在调用该功能时需要在AppDelegate.m文件中进行注册声明,需要分享至哪些社交平台以及相应平台的AppKey,AppId,必要的回掉方法,代码如下:/首先注册ShareSDKAppKey ShareSDK registerApp:api20 ;/字符串api20为您的ShareSDK的AppKey/添加新浪微博应用 注册网址 ShareSDK connectSinaWeiboWithAppKey:appKey appSecret:appSecretredirectUri:;/当使用新浪微博客户端分享的时候需要按照下面的方法来初始化新浪的平台ShareSDK connectSinaWeiboWithAppKey: appKey appSecret: appSecret redirectUri:weiboSDKCls:WeiboSDK class; 其他社交软件注册方法与新浪微博类似,这里不一一给出具体代码。拨打电话功能是利用UIWebView,将号码转换成URL地址显示出来,代码示例如下:UIWebView*callWebview =UIWebView alloc init;NSURL *telURL =NSURL URLWithString:tel:/88888; callWebview loadRequest:NSURLRequest requestWithURL:telURL;6系统功能测试软件开发的主要流程包括软件计划,需求分析和定义,软件设计,软件实现,软件测试,软件运行维护。其中软件测试占了很大比重,只有通过了测试阶段,软件才能够上架发布。软件测试的目的就是发现问题,通过不断的测试,开发人员不断修改,将软件的质量足步提高。软件测试并不能发现所有的问题,我们需要尽可能地发现问题,避免以后造成过多损失。本节中将进行几个简单的测试用例,并不能够做的十分完善,将在以后的学习工作中不断完善。6.1天气查询测试用例表6-1 天气查询测试用例表用例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门面房租赁合同
- 安全施工管理培训课件
- 安全施工培训课程内容课件
- 安全施工培训教案课件
- (苏教2024版)科学三年级上册1.3 肥沃的土壤 课件(新教材)
- 二一一工程实施方案(3篇)
- 安全文明用语培训课件
- 球面透镜的矫正原理
- 防城港市上思县妇幼保健院整体搬迁项目(一期)环境影响报告表
- 农业气象服务创新与智慧农业产业链协同发展研究
- 安全环保专员岗位常见面试问题部分含答案附面试技巧自我介绍
- 邮政行业痛点与解决措施
- 回族做礼拜的念词集合6篇
- 《铁路交通事故调查处理规则》解读
- 研究生学术行为规范讲座
- 年处理12万吨煤焦油加工工艺初步设计
- YB 4094-1993炮弹用方钢(坯)超声波探伤方法
- 《雨巷》优秀课件-雨巷课件一等奖
- 《嫦娥(李商隐)》课件
- 《人工染色体载体》课件
- 平行平板的多光束干涉
评论
0/150
提交评论