




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳建筑大学毕业设计、沈阳建筑大学毕业论文沈阳建筑大学毕业设计说明书毕 业 设 计 题 目 基于iphone iOS操作系统的app美剧迷的设计与实现 学院专业班级 信息与控制工程学院 计算机科学与技术 10-01班 学 生 姓 名 性别 指 导 教 师 职称 2014年 6月 9日摘 要近年来随着科技大潮的不断冲击,移动互联网开始逐渐渗透到正统的互联网行业和部分传统行业,智能手机的时代带给了开发者一个展示智慧的全新平台,其中iOS操作系统以其简单大方的界面布局和完美的用户体验赢得了世界很多用户的青睐,苹果手机开始深入人心,借此良好的发展趋势,越来越多的iOS开发者不断开发出很多风靡一时的应用,用户可以轻松在AppStore下载关于生活娱乐的影视应用,完美的软硬件结合,使用者可以随时观看最新的各类震撼人心的美剧,通过特定时间的推送让用户随时掌握剧情的更新状态,同时可以通过收藏在线下载等方式观看影视剧。全套设计加扣 3012250582本说明文主要介绍iphone手机客户端美剧迷的整个设计和实现过程。该应用程序的硬件环境是XCode,此开发环境主要有编译环境,手机模拟器,程序编写块,同时此IDE还有地图定位和导航,追踪和定位代码出错的地方,可以查看内存是否泄漏等。整个应用采用的编程语言是基于c语言和c+之间的Objective-c,Objective-c具有c+的面向对象的编程思想,有很好的易读性。该应用主要完成了网络的封装数据的解析以及数据库的设计和建立。此应用的主要有节目单,我的剧,美剧迷,找美剧,设置五大模块。节目单模块和我的剧模块UI的实现主要采用了UITableView来实现,但具体数据展示途径还有很大差异,节目单的影视图片是通过采用SDK中的类来实现下载的,而我的剧当中的图片是从数据库中直接获取。美剧迷模块是核心模块这里主要采用UISCrollView实现图片的左右滑动,点击图片可以跳转到相应的美剧,同时用UITableView来展现热播的一些美剧名称。在找美剧模块,采用UISearchBar,实现UISearchBar的代理方法,可以按照不同的搜索类别去搜索美剧。设置模块使用UITableView的Group风格样式,其中cell上有推送,清除缓存等功能,用户点击相应的Cell可以实现对应的功能。在测试阶段修改了一些主要的Bug,在真机调试和模拟器测试中,整个程序运行稳健,不存在闪退等问题,也有良好的用户体验效果。关键词:移动互联网;智能手机;手机客户端 ABSTRACTIn recent years, with the development of technology, mobile Internet gradually penetrated into the Internet industry and part of the orthodox tradition industry, the era of smart phones gives developers a shows the wisdom of the new platform, including iOS operating system for its simple and easy interface layout and the perfect user experience won the world a lot of users, apple mobile phone began to deeply rooted in the hearts of the people, to the good development trend, a growing number of iOS developers to constantly develop the application of a lot of be the rage, the user can easily download about life in AppStore application of film and television entertainment, perfect combination of hardware and software, the user can at any time to watch the latest TV drama of all kinds of shock, through specific time push let users can know the update status of the plot, at the same time you can watch the film and television play by collection online download. The exposition is mainly introduced the iphone client throughout the design and implementation process of the fans. The application of the hardware environment is XCode, the development environment mainly include compile environment, mobile phone simulator, programming, at the same time the IDE and map location and navigation, tracking and locating error code, can check whether the memory leaks, etc. The entire application is the based on c language and c + + programming language used between Objective - c, Objective - c with c + + object-oriented programming ideas, have very good readability. This application is mainly completed network of encapsulation data parsing and database design and build. The application of the main program, I show, the fans, looking for a TV drama, set up the five modules. Program modules and I play of the UI module mainly adopts the UITableView, but detailed data to demonstrate approach also has the very big difference, the film and television pictures of the program is done by using SDK classes in the download, and I show pictures of the directly obtained from the database. The fan module is the core module mainly images is realized by using UISCrollView sliding around here, click on the image to jump to the corresponding TV drama, at the same time use UITableView to show the name of some of the hit TV drama. Looking for TV drama module, adopt the UISearchBar, realize the UISearchBar agent method, can according to the different search category to search TV drama. Setting module using UITableView Group style pattern, in which there is pushed on the cell, clear the cache, and other functions, the user can click on the corresponding cell implement the corresponding function.In the testing phase changed some major bugs, in real machine debugging and simulation tests, the program runs steady, there is no flash back, there is also a good user experience. Key words: mobile Internet; Smart phones; Mobile client; TV drama 目录 第一章引言11.1 移动互联网的现状与发展趋势11.2 课题的目的和意义3第二章iOS、语言、环境以及所用技术介绍42.1 iOS简介42.2 Objective-C语言52.3 Xcode开发环境62.4 SQLite数据库52.5 JSON解析7第三章需求分析93.1 设计背景93.2 功能需求9第四章总体设计114.1 程序总体架构114.1.1 用户界面架构114.1.2 程序设计架构124.2 功能模块设计13第五章详细设计与实现155.1网络模块设计155.2数据库模块设计185.3节目单模块设计215.4我的剧模块设计235.5美剧迷模块设计285.6找美剧模块设计325.7设置模块设计34第六章 测试366.1测试项目366.1.1节目单模块测试366.1.2我的剧模块测试366.1.3美剧迷模块测试366.1.4找美剧模块测试356.1.5设置模块测试37第七章 结论38参考文献39致 谢40附录一 中文译文 附录二 英文原文沈阳建筑大学毕业设计基于iphone iOS操作系统的app美剧迷的设计与实现第一章引言随着科技的不断发展,伴随着各种智能手机的市场率不断提升,移动互联网的时代来临。在此大的趋势下,各种层出不穷优秀的手机应用逐渐影响着人们的生活。人们通过这些应用,用最方便的方式实现消费娱乐。1.1 移动互联网的现状与发展趋势 伴随着全球3G网络的商务用途的不断推进,移动数据业务开始快速的增长。尤其是最近两年,随着移动通信市场竞争的加快以及日趋饱和的形势,全球主要的移动运营商都已经开始重点推进移动互联网的业务发展。传统的互联网业务在移动运营商等产业各方的积极推动下,正在加速与移动通信网络融合,形成移动互联网。移动互联网可以在任何时间、地方以无线方式接入,从而通过移动终端实现在互联网上的数据共享和传输。3G网络的商用规模不断扩大以及4G网络的研发,会给移动互联网提供包括手机电视、高速上网、可视电话等多种服务和更高的移动传输速率。未来十年,互联网的主题是把分立的不同的功能重新融合在一起,实现社会化、人性化、个人化的要求。移动互联网由于移动终端的专属性和私密性,这一趋势将更加明显和迅速,基于用户的平台融合将是大势所趋。在移动互联网被普遍看好的今天,大量创业者、互联网从业者甚至是传统领域的企业都在积极进入,激烈的竞争将在带来成功者的同时,也将伴随着大量失败企业的陨落。在投资热度的背后,必要的风险和一定的泡沫仍然存在,行业发展机遇的同时也将面临巨大的挑战。移动互联网不是在原有生态系统中引入一个新的竞争者,而是创造了一个新的生态系统。随着移动互联网的飞速发展,以iPhone、iPad为代表的移动多媒体终端彻底改变了现代生活。只要指尖轻触屏幕,就可以随时随地穿梭于互联网之间,手机电视、视频通话、音乐下载、手机游戏、即时通讯、移动搜索、移动支付等成为最受欢迎的移动数据业务。移动互联网作为信息技术领域的又一次突破,对人类社会各领域活动的潜在颠覆性影响已获得了越来越多的认可,一条以移动多媒体终端为核心的产业链正在重构相关产业格局。移动互联网是使用手机、上网本、笔记本、平板电脑等移动终端,可同时提供语音、数据、多媒体等业务应用的开放式互联网络。移动互联网打破了传统电信运营商对用户互动与获取信息的束缚,使随时随地互联、娱乐、搜索、商务等成为可能,人们的社会生活效率也因此得到巨大提升。有学者指出,移动互联网是三网融合的前奏,也是三网融合演进当中的必经阶段。 在3G时代,手机用户已经成为上网用户的主流群体,手机也开始影响着各行各业。谈到未来基于手机上的无线互联网的发展趋势究竟是手机客户端上网还是手机wap上网,这个阶段我们还很难过早的下定论,但是有一点可以肯定,那就是用户体验的好坏将直接决定两者的前途命运。我们现在就来看看在的无线互联网网络环境以及各种条件之下,手机客户端上网与手机wap上网各自的优缺点,做一个简单的评测。无线互联网行业以手机客户端为主的产品很多。客户端软件,需要在手机上安装才能使用。而利用手机WAP上网,第一次则需要手动输入网址,当然可以将该网址保存为标签,之后也可以做到较为方便的访问。在手机上完成输入网址或者在众多保存的标签中查找需要的网址,确实是需要一定时间的。目前除了游戏类客户端,渐渐地商务应用的客户端渐渐被大家熟悉和应用,为我们的生活、工作带来了便捷。手机客户端为企业开辟全新的营销推广手段,手机客户端通过软件技术将公司把产品和服务介绍安装于客户的手机上,相当于把公司的名片、宣传册和产品等一次派发给用户,而且用户还会主动的保留他们。通过手机客户端进行这些宣传的花费都是很低的,用户使用次数也不受限制,最便携的企业宣传册,在手机上轻松携带大容量的企业资讯,省去资料携带不便的烦恼,随时随地洽谈客户企业成本,也不会随着客户下载数量的增加而增加。如今市场最有发展前景的是以Android、iOS、windows为主流手机操作系统,开发者开发的各类应用可以放到苹果和谷歌等商城,通过植入广告或者收费下载等各种渠道,可观的app下载量可以让开发者有理想的收入。在生活娱乐方面的app就占据了较大的份额,如面对各个影视的app,美剧迷能够带给用户一个全新的体验。其收藏,在线观看,在线下载,分享等功能够很大程度上满足用户观看美剧和影视的需求。1.2 选课的目的和意义据中国互联网络信息中心(CNNIC)最新的统计报告(2011年7月),截至2011年6月底,中国手机网民规模为3.18亿。手机网民在总体网民中的比例为65.5%,移动互联网时代已经全面到来。那移动互联网究竟给我们带来了什么?环顾一下四周,我们会不难发现,无论是在公交车还是在地铁,总有不少人低着头沉默不语,他们紧盯着自己手中的手机或平板,手中也没闲着,在不停的比划,凑近一看,他们要么在玩游戏,要么在上qq,要么在微博,要么在一些社交网站。我们会发现,一旦有一点空闲的时间,我们就会拿出我们的手机来玩。蹲厕所时,隔壁会传来小鸟撞击石头而发出的叫声;在电梯中,总会有朋友拿出手机或ipad登陆自己的某个客户端。手机客户端作为登入移动互联网最便捷的方式,为企业进入移动营销时代开辟了一条光明大道。功能丰富、图文并茂,手机客户端带给用户很多新鲜体验。智能手机屏幕大、触控操作的特点,也引发手机客户端充分体现了完美的大图触控效果,让用户享受指尖在触屏滑动的人机交互,体验指尖在触摸屏上的酷炫操作,简单轻松实现手机访问页面的畅游体验。不得不说,智能手机客户端,是现代科技与艺术的完美结合。传统PC互联网时代,搜索引擎一直把持着互联网的第一入口,因而催生了谷歌百度等巨无霸公司。山不转水转。数据显示,当前更多用户已经习惯于通过手机客户端直接访问移动互联网。手机客户端已经取代搜索引擎成为了移动互联网的第一入口。互联网入口的争夺,是用户资源的争夺,也是信息时代最具价值的财富争夺。谁掌握了移动互联网的入口,谁就掌握了最具用户价值的巨大财富。这是一座巨大的金矿。从PC平台到移动平台的发展,从互联网搜索引擎到移动互联网手机客户端的发展,已经显现出来基于手机客户端的移动营销已经成为挖掘财富的重要阵地。手机客户端在带给用户出色体验的同时,也给商家带来了新的营销方式,为中小企业掘金移动互联网市场带来了新的有效途径。第二章iOS操作系统、编程语言、开发环境以及相关技术介绍iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系统一样,它也是以Darwin为基础的。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。2.1 iOS简介 iOS最初是设计在iPhone上的操作系统,苹果公司于2007年1月9日的Macworld大会上公布了这个系统,并命名为iPhone OS,但随着此系统在iPod touch、iPad以及Apple TV等苹果产品上的广泛应用,苹果公司于2010年6月7日WWDC大会上将其改名为iOS。据Canalys的数据显示, 截止到2011年11月,iOS占据了全球智能手机系统市场份额的30%,在美国的市场占有率更是达到了43%。随着Andriod开源操作系统的异军突起以及Windows Phone的发力,iOS市场份额正被一点点的蚕食,但是iOS设备的利润率高的惊人,以智能手机为例,iphone的利润额占到整个智能手机利润额的80%,受益于此,苹果的市值也达到了5000亿美元。iOS操作采用的是多点触控直接操作,控制方法包括滑动、轻触屏幕和图标及按键。操作有:滑动、轻按、缩小及放大。此外,iOS移动设备中还内置了加速器,使得旋转iOS设备时,界面也可以得到旋转,这也使得iPhone等便携设备更便于使用。自3GS开始,iphone装备有陀螺仪,这使得iphone有了重力感应,游戏效果更加的突出。屏幕的下方是home键,点按回到主界面。底部是dock,可安放四个使用者最经常使用的程序的图标。屏幕最上方是状态栏,显示一些有关资讯:如时间、电池电量和讯号强度等。其余的屏幕用于显示当前的应用程序。启动程序,只需点按该程序的图标,点按屏幕下方的home键即退出应用程序。在iPhone 3.0及后续版本中,及时应用程序退出,当第三方软件收到了新的讯息时,苹果公司的服务器将把这些通知推送至iPhone或iPod Touch上(不管它是否正在运行中)。iOS平台上的应用程序之所以繁荣,得益于苹果公司及时推出了基于iOS平台的SDK。2007年10月17日,史蒂夫乔布斯在一封张贴于苹果公司网页上的公开信上宣布软件开发工具包。它将在2008年2月提供给第三方开发商。软件开发工具包于2008年3月6日发布,并允许开发人员开发iPhone和iPod touch的应用程序,并对其进行测试,名为“ iPhone手机模拟器” 。然而,只有在付出了iPhone手机开发计划的费用后,应用程序才能发布。自从Xcode3.1 发布以后,Xcode就成为了iPhone软件开发工具包的开发环境。第一个Beta版本是iPhone SDK 1.2b1(build 5A147p)它在发布后立即就能够使用了。由于iOS是从于Mac OS X核心演变而来,因此开发工具也是基于Xcode。该SDK需要拥有英特尔处理器且运行Mac OS X Leopard系统的Mac才能使用。其他的操作系统, 包括微软的Windows操作系统和旧版本的Mac OS X都不支持。SDK本身是可以免费下载的,但为了发布软件, 开发人员必须加入iPhone开发者计划, 其中有一步需要付款以获得苹果的批准。加入了之后,开发人员们将会得到一个牌照,他们可以用这个牌照将他们编写的软件发布到苹果的App Store。发布软件一共有三种方法: 通过App Store,通过企业配置仅在企业内部员工间应用,也可通过基于Ad-hoc而上载至多达100部iPhones。这个发布iPhone软件的形式的出现使人们不能根据GPLv3的授权代码发布软件。任何根据GPLv3任何代码的开发者也必须得到GPLv3的授权。同时,开发商在散发布已经由GPLv3 授权的应用软件的同时必须提供由苹果公司提供的密匙以允许该软件修改版本的上载。2.2 Objective-C语言Objective-C, 也通常被写作ObjC,是一种扩充C的面向对象编程语言,主要用于Mac OS X和GNUstep这两个使用OpenStep标准的系统。Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。Objective-C最开始并不支持垃圾回收,因为垃圾回收有漫长的“死亡时间”, 会导致整个系统失去功用。但自Xcode4.0开始,支持自动释放,也就是ARC (Automatic Reference Counting)机制,不需要用户手动去Release每一个对象,编译器会在编译期间自动帮你添加那些以前你经常写的NSObject release。Objective-C不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类别和函式均有NS作为前缀,例如NSObject或NSButton来清楚分辨它们属于Mac OS X核心;使用NS是由于这些类别的名称在NeXTSTEP开发时定下。虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。Objective-C和C+有很多不同之处,Objective-C不支持运算符重载,也只允许对象单继承,但其引入的Categories和protocols可以提供很多多重继承的好处。很多常见的编译时的性能优化方法都不能应用于Obj-C,比如内联函数。2.3 Xcode开发环境Xcode是开发苹果应用程序的必备开发环境, 自4.0开始,开发人员就可以利用Xcode开发基于iOS的iPad、iPhone、iPod Touch 设备应用程序,只要你有Mac OS X Snow Leopard 10.6.2 以上版本 Mac OS 操作系统,便可安装ios sdk,如果你有iOS设备,便可让Xcode把应用程序部署到你的iOS设备上。另外,你还可以使用iPhone仿真器进行调试。Xcode提供了友好而方便的应用程序开发环境,这样你就可以开发出好的iOS应用程序了。Xcode支持多种语言,如:C、C+、Objective-C、Java。另外,Xcode 的编译速度也极快。Xcode还具有自由撤消的强大功能:Xcode 4 具有虚拟模型和设计功能,这可以让你更轻松的开发和维护应用程序。2.4 SQLite数据库iOS包含了SQLite数据库,它是一个简单的、轻量级的数据库,并宣布是“世界上部署的最广泛的数据库引擎”。目前很多嵌入式产品都使用SQLite,SQLite占用资源非常的低,在嵌入式设备中,只需要几百K的内存就够了。它支持Windows/Linux/Unix等主流的操作系统,比起Mysql、PostgreSQL这两款世界著名的开源数据库管理系统,它的处理速度都比他们快。下面以具体实例的形式讲述创建SQLite的方法:1.创建数据库命令:sqlite3 shopping.db 若shopping.db文件已存在,则打开数据库,若不存在,则创建它。2.创建表格: create table shopping (key integer primary key,item text,price double,groupid integer,dateadded date);3.插入数据: insert into “shppinglist” (item,price,groupid,dateadded) values (“iPhone 3G”, “199”, 1, DATETIME(NOW)4.查询:select * from shoppinglist2.5 JSON解析JSON(Javascript Object Notation)是一种轻量级的,以文字为基础,且易于让人阅读。尽管JSON是在Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON格式是1999年JavaScript Programming Language, Standard ECMA-262 3rd Edition的子集合,所以可以在JavaScript以eval()函式(javascript通过eval()调用解释器)读入。不过这并不代表JSON无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有JSON函式库。 JSON用于描述数据结构,有以下形式存在:1.对象 (object):一个对象以“”开始,并以“”结束。一个对象包含一系列非排序的名称值对,每个名称值对之间使用“,”分割。2.名称值对(collection):名称和值之间使用“:”隔开,一般的形式是:name:value一个名称是一个字符串;一个值可以是一个字符串,一个数值一个对象,一个布尔值,一个有序列表,或者一个null值。3.值的有序列表(Array):一个或者多个值用“,”分割后,使用“”,“”括起来就形成了这样的列表,形如:collection, collection4.字符串:以括起来的一串字符。5.数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。6.布尔值:表示为 true 或者 false。第三章 需求分析美剧观看的app是典型的c/s模式,用户所需要的信息直接从服务器上请求数据然后服务器将请求的数据返回给客户端,客户端主要展示的信息是美剧和一些热门影视的更新状态。鉴于考虑用户的需求不能随时观看,在app中加入收藏和在线下载等功能,其中分享的功能可以增加app的限时免费的app的下载量,还可以展示用户的观后感。3.1 设计背景随着智能手机的发展,人们的工作和生活越来越离不开手机,依据手机应运而生的手机客户端成为用户主要的关注对象。数据显示,目前每部智能手机中客户端应用程序的安装数量平均在6.5个左右。功能丰富、图文并茂,手机客户端带给用户很多新鲜体验。智能手机屏幕大、触控操作的特点,也引发手机客户端充分体现了完美的大图触控效果,让用户享受指尖在触屏滑动的人机交互,体验指尖在触摸屏上的酷炫操作,简单轻松实现手机访问页面的畅游体验。不得不说,智能手机客户端,是现代科技与艺术的完美结合。随着各种app的出现,生活娱乐类的app成为主流趋势,美剧迷的各个功能恰到好处的满足了用户可以随时随地观看最新的影视剧。3.2 功能需求此应用程序是在iOS开发平台下开发,所有的功能模块都是经过严格的测试和真机调试。本应用程序有良好的设计界面,应用程序的功能模块分为节目单,我的剧,美剧迷,找美剧,设置五个模块,在各个模块上都考虑了用户的体验效果,所以都有良好的滑动,点触效果。基于开发时候方便无误,采用了MVC的开发模式,有专门的网络请求,数据存储,设备适配,下拉刷新等问题。同时考虑到用户的另一个体验效果,在图片请求展示的时候,防止图片加载速度过慢,所以直接采用了第三方SDK来专门负责图片的下载和压缩处理。整个应用模块都是采用Mac OS X IDE XCode进行开发,所以对网络的要求比较高。此应用程序的所有数据都是来自于服务器返回的数据,客户端的收藏,在线下载,和在线观看都是采用流媒体技术实现。用户可以在本地存储喜欢的影视信息。通过需求分析分析,本应用程序有五个功能模块:(1)实现节目单,我的剧,美剧迷这三个模块都是从服务器请求,通过数据解析,将返回的数据展示在控件上。为了考虑图片加载的流畅性,和能够让用户及时获取到最新的影视剧信息,在这些界面中加入了下拉刷新和上拉加载更多。(2)在找美剧模块自定义了搜素框,当用户开始编辑搜索框的时候,整个界面都会被阴影灰透明的背景蒙住,不可点击。当用户输入关键字后,就会开始向服务器请求数据,等待服务器返回数据之后,将数据展示在表格控件上。(3)为了满足用户与app的交互性,在设置模块加入了清除缓存,收藏和取消等功能。第四章 总体设计4.1 程序总体架构4.1.1 用户界面架构程序的用户界面架构,在用户界面上,主要使用了系统提供的UIKit框架进行用户界面的搭建。节目单,我的剧,美剧迷,找美剧,设置五个模块直接展示在app的主页面上, 所以使用了UITabBarController对五个基本的模块界面进行管理,点击UITabbar可以随意来回这五个界面,每个模块都是独立的当进入另一个界面时不影响另一个界面的数据请求和展示。用户可以点击每个模块的表格视图,当点击了某个项的时候,表格式图就触发了可选属性,然后就会跳转到相应的界面,显示该栏目下的详细信息。而每个模块里面的界面都是用采用UINavigationController的对象入栈的原理来管理界面。所有的界面都是通过导航栏的对象栈原理进行,界面的推进与返回。其实整个结构都是树形结构,UITabBarController是该树形结构的根,各个UINavigationController是该树形结构的各个分支,在UINavigationController中推出UIViewController和弹窗试图类似于树叶。图4.1 界面架构模型图4-2 树状结构在找美剧迷模块由于自定义了搜索框,加入了UISearchBar,通过实现它的代理方法,开始检索用户喜爱的美剧。同时在搜索框下面用表格视图定义了各分类,用户点击每个分类就会跳转到相应的节目列表。在美剧迷模块的详情界面中的TabBar上自定义了看过,分享等四个Button,其中分享按钮的触发事件弹出框是用UIActionSheet实现的。在设置界面都用到了UISegmentControl,用户可以通过这个多选器选择对应的操作。在部分界面的导航栏上放置了UIBarButtonItem,这些都是事件驱动性的控件。4.1.2程序设计架构整个程序完全是采用MVC模式来设计的,这样有助于方便管理繁多的视图控制器和数据模型,然后封装了网络请求和数据库的设计,其中在网络请求里面封装了数据的缓存,设定了缓存的有效期。整个视图控制器都是继承于三个根视图控制器,子类重写父类的方法即可。节目单,美剧迷,我的剧,设置,找美剧这个五个界面都是采用UITableView,所以他们继承同一个父类,在父类中封装了设置导航栏的标题和图片,页面请求的url和请求的返回值等方法。在这个父类中,可以设置一些页面共有的属性,比如页面的背景颜色,在设置为白色以后,在iOS7系统下,可以有效地减少卡顿的现象,类似于背景颜色的属性都可以在该父类中设置。同时还封装了硬件版本的适配方法。由于节目单,美剧迷,设置这两个模块中的cell基本一致,所以在程序设计中,将这两个功能模块在同一个UIViewController中去实现,实现数据的展示,选用了UITableView,所以这个两个模块的区分,是在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath:)indexPath的回调方法中进行判断。设置模块和我的剧和找美剧是采用了UITablebleView的Group模式,其中每个section的标题用方法:-(NSString*) tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section实现。在这几个模块当中用到了xib来定制视图的展示,这几个模块的详情界面也是使用UIViewController实现的。由于各个功能模块都需要进行网络数据的请求,程序中将网络请求单独列为了一个模块,网络请求使用ASI第三方库,并且在这基础上进行封装。使用一个请求管理类,对所有的请求进行管理,在每一个请求完成以后,请求管理类接受到服务器响应的数据,并对数据进行解析,解析完成之后,发出一条通知。各个界面注册了通知,所以在请求管理类发出通知以后,界面就能接受到通知,进而拿到数据。因而网络数据解析完成以后,需要传给不同的界面,这是一对多的传值,所以使用了KVC来进行传值。用户可以收藏喜欢的影视剧的数据,使用数据库来实现的。为了便于对数据库的操作,使用了FMDatabase来操作SQLite数据库,由于只存储app的信息,在数据库的存储当中对数据库设置了线程锁,这样就是防止多个线程同时对数据库进行操作,导致数据库的不安全。4.2 功能模块设计按照功能分成五大功能模块,如表4-1:模块简述功能描述节目单这个界面主要展示了一些热门节目的信息,包括节目的收藏,分享次数,节目名称和节目的大小。我的剧将降价的app信息展示出来。下拉刷新,可以刷新所有app数据信息,上拉加载更多的app数据信息。美剧迷用一个UISCrollView来展示所有美剧的图片,点击可触发方法,跳转到对应的美剧。在TableView上展示每个节目的一些图片。找美剧这个界面加入了UISearchBar实现了搜索功能,用户输入关键字可以从服务器获取到数据然后展示在下个界面。其中这个界面使用了tableView来展示各个类别的影视。设置用户可以对美剧迷这款app进行一些设置,并且可以在设置中看到自己收藏的app。表4-1 功能模块表第五章 详细设计与实现5.1 网络模块设计网络下载使用了第三方库ASIHTTPRequest, ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求。ASI的功能很强大,这里主要使用ASI的简单接口,即可完成向服务端提交数据和从服务端获取数据的工作。使用ASI需要连接的系统框架有:CFNetwork.frameworkSystemConfiguration.frameworkMobileCoreServices.frameworkCoreGraphics.frameworklibz该程序所有的网络请求都是基于http协议的GET请求,并且都是异步的网络请求,异步请求不会阻塞主线程,主线程任然可以操作UI界面。ASI异步的回调方法有:请求成功的回调方法- (void)requestFinished:(ASIHTTPRequest *)request;请求失败的回调方法- (void)requestFailed:(ASIHTTPRequest *)request;请求后,服务器返回的是json数据,然后再对数据进行解析。网络下载模块是对ASI的封装,每次请求,组装一个参数值的字典,然后给封装好的借口。并且使用类HttpManager来管理所有的请求,利用请求的url和request对象的键值关系,将所有请求放在一个字典中管理。请求成功或者失败后,在字典中删除该请求。以下是利用ASI发起请求的代码:-(void)downloadFromUrl:(NSString*)newurldict:(NSDictionary*)dictNSURL*url=NSURLURLWithString:newurlstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding;ASIFormDataRequest*request=ASIFormDataRequestrequestWithURL:url;request.delegate=self;for(NSString*keyindictallKeys)idobject=dictobjectForKey:key;if(objectisKindOfClass:NSDataclass)requestsetData:objectwithFileName:1.pngandContentType:image/pngforKey:key;elserequestsetPostValue:objectforKey:key;requeststartAsynchronous;以下是网络请求数据三个代理方法的实现代码和清除缓存代码::-(id)initif(self=superinit)_mData=NSMutableDataallocinit;returnself;-(id)initWithUrl:(NSString*)urlif(self=superinit)_mData=NSMutableDataallocinit;_url=url;returnself;-(void)startRequestif(_isCache=YES)FMDBManager*manager=FMDBManagershareManager;NSData*data=managergetCache:self.url;if(data)self.delegatemyConnectionDidFinish:selfData:data;return;NSURLRequest*request=NSURLRequestrequestWithURL:NSURLURLWithString:self.url;NSURLConnectionconnectionWithRequest:requestdelegate:self;-(void)connect
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第9课 游动的小金鱼说课稿-2025-2026学年小学信息技术(信息科技)第八册黔教版
- 江西省南昌第二中学2025年物理高三第一学期期末联考试题
- 2025-2026学年吉林省长春市“BEST合作体”物理高三上期末达标测试试题
- 上海市进才实验中学2025年高三物理第一学期期末学业水平测试模拟试题
- 2026届山西省大同市煤矿第四中学物理高三第一学期期末经典试题
- 河北省唐山市唐县第一中学2025-2026学年物理高三上期末质量跟踪监视试题
- 第1课 笔墨千秋-说课稿2024-2025学年湘美版初中美术八年级上册
- 10.1 第4课时 溶液的导电性 酸和碱的相似性2025-2026学年九年级下册化学同步说课稿(人教版)
- 2.2 复杂多样的气候 说课稿-2025-2026学年八年级地理上学期晋教版
- 接插件零件制造工培训考核试卷及答案
- 2025年高一上学期英语开学第一课课件
- 小学五年级上册生命.生态.安全全册教案
- GB/T 29781-2013电动汽车充电站通用要求
- 第二化学反应的能量和方向名师编辑课件
- 七年级上册劳技教案
- 培养科研素养提高科研能力课件
- 公司企业接收证明
- 苏州大学医学部操作技能直接观察评估(DOPS)评分表
- 暂时进出口协议范本样本
- (烹饪)基本功教学教案
- 第11章-网络故障诊断及排除ppt课件(全)
评论
0/150
提交评论