基于iOS平台的多听之声APP的设计与实现_第1页
基于iOS平台的多听之声APP的设计与实现_第2页
基于iOS平台的多听之声APP的设计与实现_第3页
基于iOS平台的多听之声APP的设计与实现_第4页
基于iOS平台的多听之声APP的设计与实现_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业论文题 目:基于iOS平台的多听之声APP的 设计与实现姓 名: 学 号: 指导教师(职称): 专 业: 班 级: 所 在 学 院: 年 月基于iOS平台的多听之声APP的设计与实现Design and Implementation of Listen More Voices APP Based on iOS 目 录摘 要IIIAbstractV第一章 绪 论11.1 课题背景11.2 国内外发展现状11.3 目的及意义31.4 项目内容3第二章 iOS平台框架及相关技术介绍52.1 iOS系统架构52.2 iOS简介和Objective-C语言72.3 Xcode工具和MVC模式92.4

2、 SQLite数据库和JSON数据解析112.5 HTTP/TCP通讯11第三章 系统需求分析133.1 系统可行性分析133.2 功能性需求分析143.3 非功能性需求分析15第四章 系统概要设计174.1 系统的模块设计174.2 主要界面设计184.3 主要功能设计19第五章 系统详细设计215.1 基本框架搭建215.2 主要功能实现22第六章 软件测试316.1 软件测试简介316.2 软件测试分类及方法336.3 软件测试模型346.4 软件测试结果36总 结37致 谢39参考文献41- 48 -摘 要 随着电子产品的大众化,越来越多的人拥有智能手机,相对的程序软件的需求也就越来越

3、多。当今时代手机不再只是用来工作和沟通,它的娱乐功能越来越强。现在,基于iOS操作系统的应用程序越来越多,这方面的需求也随之增大,而且随着苹果公司进入中国,苹果产品不可避免的成为现在中国电子市场不可缺少的一部分。它们的应用使现代人的生活更加的方便。而相应的Objective-C语言,也成为比较流行的开发语言。现代社会在不断的进步,人们在忙碌的工作中或者是学习中,压力也是随着增大,原本用来看书或者是休息的时间在加速的消耗。电台类APP则是将电脑上的网络电台搬到了移动手机上,使人们在移动中就能够随心所欲的听到自己想听的声音。无论是在上班路上或者是在旅行路上,只要是在闲暇时间都可以通过移动手机来收听

4、。极大地优化化了电脑版电台的尴尬。APP使用Objective-C语言编写,使用Xcode开发工具实现。电台类APP不仅界面美观,而且操作简单。关键词:iOS;电台类APP;Objective-C;XcodeAbstractWith the popularity of electronic products, more and more people have a smart phone, the relative demand for software is also more and more. Nowadays, mobile phones are no longer just used

5、 for work and communication, but its entertainment function is becoming more and more powerful. Apple products based on the iOS operating system has become an integral part of Chinas electronic market, iOS based software requirement is also the corresponding growing. Their applications make the mode

6、rn life more convenient.While the corresponding Objective-C language, has also become a more popular development language.With the development of society, peoples work, learning more and more pressure, reading, browsing news and time consumption in the busy run.The development of mobile Internet pla

7、tform for people to open up the fifth media.APP is a radio network radio on the computer to the mobile phone, so that people can hear the sound of the way you want to hear on the move.Whether it is on the way to work or travel on the road, as long as it is in the leisure time can be heard through th

8、e mobile phone. Greatly optimized the embarrassment of the computer version of the radio.APP using Objective-C language, the use of Xcode development tools to achiev. Radio APP has beautiful interface and simple operation.Keywords:iOS;Radio kind of APP;Objective-C;Xcode第一章 绪 论1.1 课题背景随着电子产品的大众化以及普及,

9、越来越多的人拥有了智能手机,相对的对手机程序软件的需求也就越来越多。当今时代手机不再只是用来工作和沟通、打电话和发短信的工具,它的娱乐功能也越来越强。现在,基于iOS操作系统的应用程序越来越多,这方面的需求也随之增大,而且随着苹果公司进入中国,苹果产品不可避免的在现在中国的电子市场上占据一席之地。智能手机是一种便捷的移动设备,而这种设备正在悄声无息的慢慢的改变着各个企业的运行模式1。这就是说这种移动设备的性质已经改变,它的领域已经被慢慢的扩大,进入到了商务领域的范围,已经脱离了那种只是消费设备的领域。当企业察觉到这种改变,那么企业的战略目标也就会跟随着市场的规律来进行调整,将研究的重点或者是方

10、向放到移动领域上来。他们可以通过软件来推广他们的品牌,通过软件来近距离接触客户或者是用户,甚至是改变原本销售的渠道。现在,移动设备上的软件是互联网行业的又一个潜在的巨大的市场。应用软件的出现使得现在人们的生活发生了改变,变得更加的方便了。现代社会在不断的进步,人们在忙碌的工作中或者是学习中,压力也是随着增大,原本用来看书或者是休息的时间在加速的消耗。传统意义上的电台的工作地点是在地上,而网络电台顾名思义就是在网上。网络电台不像传统电台,没有那种体积庞大并且有很重的编录设备,只是用一台又轻又小巧的电脑;也没有那种可以向四面八方发送信号的发射塔,有的只是四通八达的网络;收听电台不是原来那种使用老式

11、的收音机来收听,而是只要坐在电脑前面通过鼠标,慢慢移动你的手指,然后轻轻点击就可以听到主持人的声音。网络电台是将电脑里正在播放的音频数据或者是视频数据,由编码器通过一系列复杂的操作,转换成为可以直接在网络上快速、安全传送的编码格式。当用户登陆到或者是访问网络电台的网站信息时,就可以点击下载经过了格式转换的音频数据或者是视频数据。然后在经过一些可以将音频数据转换为声音的转换软件将相应的声音给播放出来。网络电台还有一个好处,就是它不像传统电台那样需要使用卫星频段和频率资源,它的播出的质量和效果受当时的网络带宽的影响。1.2 国内外发展现状手机软件行业的发展,现在可以说是蒸蒸日上,越来越好了,而且在

12、市场上占有的比重也是在不断的提高,企业或者是商家对手机软件的投入比重也是在不断的提高,人们对APP的依赖也是越来越重。在这个市场发展的氛围下,今后APP该如何发展是众多企业家目前关注的重点。随着移动设备的快速发展,随之伴随而来的是APP如雨后春笋般大量的出现。并呈现爆炸式增长。在智能终端的冲击下,原来的老式的只是电脑网页端的软件快要被随时淘汰了,因此在技术浪潮的前沿中,手机软件客户端慢慢的被人们所喜爱2。手机软件不仅是在移动互联有着深远的影响,而且在其他领域如游戏行业、新闻传播、旅游行业和艺术领域等都有着巨大的影响。而手机软件客户端的机遇和朝气,对于企业来说是一股不可忽视的强大的潜能。企业可以

13、利用手机客户端APP来发布他们企业的各种产品的信息或者是企业的动态,还可以通过手机客户端来告诉用户他们的一些资讯活动。同时,可以通过用户与商家的互动功能,如消息功能、评论功能或者是分享功能等,来加强商家与用户之间的联系,拉近企业与用户之间的距离,这样,企业既宣传了自己的形象、灵活额开展了品牌活动,又扩大了企业品牌影响。根据数据中心的预测,仅是2011年,全球范围内APP的下载量是382亿,多么庞大的数字。如果通过这个数据来计算的话,到2015年左右,全球范围内APP的下载量估计会达到1827亿的恐怖数字。手机移动设备不仅便捷小巧,还具备触屏和高清的超级体验。苹果手机和安卓手机是手机移动设备领域

14、的领头羊,以它们为代表,正在悄声无限的改变着企业的商业运行方式3。因此,一些改变就会发生,如原本这个产品被定义被消费设备的,现在却逐渐的被用于商业领域。当企业察觉到这种改变,那么企业的战略目标也就会跟随着市场的规律来进行调整,将研究的重点或者是方向放到移动领域上来。他们可以通过软件来推广他们的品牌,通过软件来近距离接触客户或者是用户,甚至是改变原本销售的渠道。手机软件的开发和推广也是一个巨大的市场,是这个移动互联网行业的新型市场。手机移动设备平台多种多样,已有iphone、Android、ipad、WindowsMobile等多个平台,而且手机移动软件的服务范围已经包含了绝大部分领域,如:酒店

15、的预定、旅游攻略、美容推荐、汽车领域、医疗问题、服装质量、娱乐行业和服务行业等等。当今时代,我国的手机软件行业可以说还是一个新生的行业,就行一个新生儿,但是却是在高速的发展着,基于这种原因和机遇,一些将专门服务的提供商看中和抓住了机遇,可以提供手机软件开发的解决方案。举几个例子来说,例如与酒店有关的手机软件,除了可以在软件上预定酒店房间之外,还可以发布一些信息,有可能是举行活动或者是打折之类的,当然,可能还会有定位功能,根据手机上的信号来识别用户当前的地理位置,然后通过高德地图或者是百度地图这么庞大的地图数据支持,通过计算获取到用户附近的酒店,商场,超市或者还是旅游景点等。又或者是附件的洗车店

16、之类的,用户可以通过地图查看位置和价格来选择自己需要的服务。企业的形象展示通过手机软件也可以展示在人们的眼前,手机软件可以说是商家或者是企业的另外一个角色,如果哪个商家或者是企业在手机软件上取得了成功,那么这个商家或者是企业的竞争能力将会飙升一大段,可以在这个复杂的市场中占据非常有力的位置。在以后的互联网中,手机软件有可能会成为主流的市场,企业与行业发展的信息的互通与共享,将有利于手机软件应用的发展,迈向高端产品的行列,不易别市场淘汰。1.3 目的及意义毫无疑问,手机的智能化不仅是在手机领域中的一大步,也是人们生活的一大步。经过了这么多年,互联网应用在高速的发展,3G网络也慢慢的普及与成熟,手

17、机的智能化刚好刚上了时机,将会成为最重要的终端载体4,通过智能手机,可以进行各种复杂的操作和用于丰富的体验。不像以前的手机只能通话或者是发短信,还可以进行上网或者是玩游戏,还能看电影、看视频。根据Canalys上统计的数据显示,苹果iOS系统在智能手机系统市场上的占有率非常大,到2011年11月,已经有全球市场行业的30%,这个数据很庞大。而且,在美国市场上的占有率就不用说了,足足有43%,并且是在不断的扩大。电台类APP则是将电脑上的网络电台搬到了移动手机上,使人们在移动中就能够随心所欲的听到自己想听的声音。无论是在上班路上或者是在旅行路上,只要是在闲暇时间都可以通过移动手机来收听。缓解人们

18、的疲劳,听着优美的主播的声音和动人的故事或者是最近发生的一些事件或热点新闻。通过这一小小的便捷式移动设备就能相较以前的网络电台5,这极大地优化化了电脑版电台的尴尬,是传统的网络电台所不能的。而且人们还可以通过评论来讨论这个事件,留下自己的足迹,而不像以前只能听不能说。主播也可以通过用户留下的评论来获取意见或者是建议,然后就可以将自己的不足之处加以改变。进而可以使自己的节目获得更多的用户喜爱。1.4 项目内容本设计是iOS平台上的一款电台类手机软件系统即APP,播放音频文件,主要设计分为UI界面设计和数据加载等内容。其内容有各种音频,包括新闻、小说、相声、历史、财经、各种段子和童话故事。实现在线

19、播放和下载到本地播放功能,实现搜索功能,实现登陆功能,实现分享功能,实现评论功能。本APP分为游客和注册用户两种权限的用户角色。游客使用在线播放、下载、搜索、分享功能。而注册用户使用,除此之外则还可以评论、订阅、和打赏功能。该系统的主要功能如下:(1)登入功能:可使用微信或者QQ第三方登录,或者使用邮箱自行注册成系统用户,使用邮箱登录。还可以用游客的身份使用。(2)音频播放功能:实现在线播放以及本地播放功能。通过下载功能将喜欢的音频下载到本地,进而播放本地音频。在线播放和本地播放是不同的功能。(3)分享功能:实现一键分享到QQ、QQ空间、微信、微博功能。(4)搜索功能:实现关键字搜索,可以搜索

20、喜欢的内容。(5)下载功能:实现音频下载功能。(6)评论功能:实现用户评论功能。用户可以通过登陆功能来进行登陆,然后就能够进行评论,说出自己想说的话,或者是和其他用户进行互动,又或者是给作者来提意见或建议。(7)收藏功能:可以将喜欢的主播收藏,关注。第二章 iOS平台框架及相关技术介绍2.1 iOS系统架构iOS主要是有四个级别的系统架构:分别是Core OS layer(核心操作系统层),Cocoa Touch layer(可触摸层),Core Services layer(核心服务层),Media layer(媒体层)。核心操作系统层:这一层是最基础的一层,可以说是整个iOS操作系统最为核

21、心的一层6。这一层是一个Unix操作系统的核心,是非常符合可移植操作系统接口的标准的。最开始的来源是来自于Darwin操作系统。提到Darwin操作系统,就不得不做一番介绍了。Darwin操作系统已经被开放了原始操作码,但并不只是一种单一的系统,它是数种技术的整合体,比如已经开放了原始操作码的XNU核心,当然,Darwin操作系统也有有对称多处理器的优点。回到主题,核心操作层当然也开源的。因为是最基础的一层,自然也就提供了绝大多数的基本功能。每种操作系统都会有诸如文件的系统管理,线程或者是进程的管理,并且会提供内存的管理和释放,程序的管理,还有支持网络等,当然也不会少了标准输入流输出流等等。核

22、心操作层当然也提供了这些功能。都是由C语言的应用程序编程接口来提供这些的基本功能。如果是想运行基于UNIX开发的程序,又或者你是在UNIX上将程序开发完成的,但是现在需要将其移植到iOS平台那么恭喜,这一层将会又非常大的帮助,因为核心操作层是基于Unix操作系统的,当你需要进行移植的时候,核心操作层就能提供应用程序编程接口,利用这些接口,自然也就能够运行了。硬件和系统框架之间是有接口来联系的,他们是由核心OS层的驱动来提供的7。每一种操作系统都是有保护的,并不是所以的类或接口都能够进行无限制的访问。因为核心操作层提供的是接口,这样访问就会受到限制。只有少数的系统框架类可以通过接口来进行访问。当

23、然,它也会提供很多的不同作用和功能的接口集合,开发人员通过这些接口集合就能能够轻松的访问操作系统的底层功能,当然只是大部分的,不可能是全部的。核心服务层:核心服务层是一个提供服务功能的层级。通过名字就能了解这一层的功能是什么。服务层,提供的功能就是服务。大部分的服务都是由这一层的接口来完成的。这一层是在第一层即操作层的基础上增加了很多的功能。首先是电话本框架,这个框架和电话本UI框架不同,电话本UI框架只是处理UI界面的内容和显示问题,如增加删除等可视化的详细内容。而电话本框架并不是解决界面问题的框架,而是在界面之下的内容,如当创建联系人时,肯定会有数据的产生,然后就会有数据的存储,如果只是单

24、独的一个创建操作按钮,而没有具体的操作详情,那么就相当于是一个白板,什么作用都没有,要之何用。正是因为这个框架的存在,开发人员才能对创建联系人等操作进行响应,将其产生的数据进行相关的操作。这个框架提供了修改和浏览在数据库中联系人数据的接口。这个功能还是非常重要的。当一个程序访问你手机上的联系人列表的时候,比如一个聊天软件,它需要你的联系人信息,以便你更好的可以快速的找到同样在使用这个软件的人群,而且是你手机通讯录中的人,这样就可以快速的找到好友,进而进行聊天之类的操作。另外一个是核心框架,这可以说是一个基础框架。它提供了各种数据类型,提供了数据类型的管理功能,还提供了集合和日期时间的显示和管理

25、功能,最为重要的是提供了线程和进程技术和URL技术8。数据类型在每个语言中都存在,但是在不同的语言中的名字或者是说法不一样,但是功能是一样的。这个框架提供了数组、字典、集合等非常有用的集合。URL技术是必须支持的,作为一个软件程序,如果没有链接这个功能,将会是不可想象的。URL技术可以将链接或者是接口提供的数据进行链接,然后在进行解析,在将这些数据显示出来。CFNetwork框架,这是与网络有关的框架。开发人员可以利用这个框架来进行聊天程序的开发。因为聊天软件主要涉及的就是通讯这方面的内容。而通讯简单点来说就是信息的交换,但是交换信息得有一个前提就是网络。通过网络才能过将信息进行交换读取。这个

26、框架就是提供了这样的一个功能。通过特定的渠道来建立链接,然后在通过解析等操作来获取信息,进而实现通讯。位置框架,这个框架是利用手机上的硬件来进行工作的。通过读取GPS等位置信号的信息,然后进过一系列复杂的计算,得到用户当前的位置信息。开发人员可以利用这个框架来进行与位置或者是定位有关的开发工作。例如与旅游有关的手机软件,在这些软件在,这些软件除了发布旅游信息和价格之外,位置是必不可少的一项。通过这个框架的功能,就能知道位置的信息,然后确定附近的旅游景点以及与景点相关的如门票、人数以及景点介绍等的情况,以便用户来进行选择。媒体层:媒体层就是处理图形图像技术的一层,也是非常重要的一层。这里的图形图

27、像主要只的是多媒体这类的功能。这个功能和UIKit框架不同9。虽然UIKit框架也是提供图形图像,但是是可视化界面的图形图像,并没有音频视频这类的功能提供。这一层是包含了UIKit框架功能的,虽然UIKit框架的操作比这一层更加简单,当时当UIKit框架不能够满足开发人员时,这一层的功能就能派上用场了。媒体层提供了音频技术、视频技术等处理技术。主要是画图和动画技术,包括画图工具,画图方式和各种显示方式。音频技术主要是有播放、录音、震动等基本功能,支持各种格式的音频文件播放以及回放,可以提供各种声道的选择。视频技术主要是播放、录制视频等功能,也是支持各种格式的视频播放,还能够进行全屏或者是横屏操

28、作,视频录制也支持各种格式以及分辨率的选择。可触摸层:这一层在整个架构中是位于最上层,也是离开发人员最接近的一层。开发人员通过这一层来使用该层提供的各种接口或者是各种控件来进行开发,最后形成可见的图形元素,也就是人们常说的界面。这一层主要是Cocoa Touch。Touch就是触摸的意思,也就是可以用手来感受来进行操作。这是基于OC的一种应用程序编程接口10。它有三种基础的框架,分别是UIKit前端框架,Foundation基础框架和电话本UI界面框架。首先,第一个框架是最为核心的部分,应用程序界面上的各种控件就是由这个框架提供的。通常的来讲,控件就是一般开发人员进行开发工作接触到最多的东西了

29、。一个完整的程序软件,大部分就是由各种各样的控件进行合理的有序的组合,然后在将这些元素显示出来。在这一层的控件非常多,举一些例子,如按钮控件,学名UIButton,这个控件自带一个点击事件方法,而不需要去额外的添加控制,然后在通过控制来触发用户的点击事件。在如UIImageView控件,这是一个与图片有关的控件。这个控件是图片的容器,好比一幅画,需要具体的画和画框,图片就是画,这个控件就是画框,用来承载画的容器。当然它并不是只有提供各种控件这些作用。这个框架还能提供点击事件的功能,如在屏幕上点击一个或多个地方,这个框架提供的功能就会来进行响应,进而来处理相应的要求或者是事件。这个框架提供了控件

30、,自然也就提供图片显示和网页加载的功能,还有文字的显示和输出。网页加载是将一个网页链接进过各种处理,然后在应用程序的界面上显示出来,这就是webView。文字显示是非常基础的功能了,通过控件来显示文字信息。你还可以通过这个框架提供的接口来访问相机,可以通过这个功能来拍照或者是访问相册。然后是第二个框架,这可以说是一个基础框架。它提供了各种数据类型,提供了数据类型的管理功能,还提供了集合和日期时间的显示和管理功能,最为重要的是提供了线程和进程技术和URL技术。数据类型在每个语言中都存在,但是在不同的语言中的名字或者是说法不一样,但是功能是一样的。这个框架提供了数组、字典、集合等非常有用的集合。U

31、RL技术是必须支持的,作为一个软件程序,如果没有链接这个功能,将会是不可想象的。URL技术可以将链接或者是接口提供的数据进行链接,然后在进行解析,在将这些数据显示出来。第三个框架是电话本UI框架,这个框架的主要作用是应用于电话本或者是通讯录。这个框架也是基于OC的一个标准应用程序接口。这个框架是用来创建通讯录的,通过这个框架可以便捷的创建联系人,管理联系人即增加或者删除联系人。不仅简化了软件应用中联系人的显示和编辑方式,还使通讯录使用同一个框架,使得接口都是一致的,保证了一致性。2.2 iOS简介和Objective-C语言(1)iOS简介iOS是由苹果公司发行的移动操作系统。是在2007年的

32、时候在Macworld大会是发行的。这个系统在最开始是给iPhone手机使用的,当时这个系统还是新生的,如一个新生儿般刚刚来到这个世界上不久。经过了一段时间的发展,慢慢的壮大和完善,就像新生儿慢慢的长大、成长,就被用在了其他的终端设备上,如苹果平板和苹果电视。这个操作系统是基于UNIX的操作系统11,发展到现在,这个系统已经非常的完善了。苹果公司因为这个系统而走到了世界的前列,可见这个系统的强大之处。iOS系统之所以如此好,是因为它基于人性化的操作和设计。界面美观和谐,不仅精美而且很符合人们的思考方式和思维方式,符合人们的操作习惯。不仅如此,它的数据管理和数据处理都是值的称赞的。iOS设备有一

33、些独到的内置应用。第一个要介绍的就是控制中心。顾名思义,控制中心就是起控制的作用。简单的建立起快速通路,当你随时急需使用的控制选项和应用程序。可以从随意的屏幕上触摸,即可切换到飞行模式功能下,屏幕的亮度随你调整,无线局域网随你心情打开关闭等等,当然也包括在锁定屏幕的状态下来进行这些操作,不能不说这个功能是非常强大的。然后就是Siri。这是一款智能语言系统。它能让你利用语音来完成你想完成的事情。比如发送信息的操作、安排会议的操作、查看最新比分的操作、打电话等等操作事务。还不止这些功能,它甚至还能够听懂你说的话、明白你是怎么想的,甚至还能够作出回答。在iOS 7中的Siri拥有新的外观、新的声音和

34、新的功能。它的回答问题的速度更快了,而且还能查询更多信息源。在iOS 7中,它的界面经过了重新的设计与更改,以部分透明视图浮现于任意屏幕画面的最上层。再是FaceTime。只需要轻轻点一下,就可以使用iOS设备与其他人进行视频通话,这是通过WLAN或3G网络来实现的12,甚至还可以在 iPhone 或 iPad 上和朋友们进行 FaceTime 通话,而这是通过蜂窝网络实现的。咫尺天涯,天涯咫尺,就是这种感觉。还有iMessage。iMessage是一项比手机短信更出色的信息服务功能,它可以与任何 iOS 设备或Mac设备用户之间免费进行收发信息,只要他们是通过WLAN 网络连接额。并且信息的

35、数量不像短信那样受到限制。所以你可以想怎么发就怎么发,而且还可以发送照片、视频、位置信息和联系人信息等等。最后一个是AirDrop。这是一个共享应用。你可以快速、轻松地共享照片、视频、通讯录。只需轻点共享,然后选择你的共享对象。它就会轻易的完成其余的事情,不仅不需要设置,传输安全,它是经过严格的加密的,可轻松保障共享内容的安全性。(2)Objective-C语言Objective-C语言简称OC语言,可以说这是一门比较年轻的计算机语言,是在C语言的基础上发展而来的语言,也就是说这是一门基于C语言的语言。但是又和C语言有很大的不同。C语言是一门面向过程的语言,着重点是过程。而OC语言是一门面向对

36、象的语言,着重点是面向对象。不仅如此,OC语言语法优美,容易让人理解,格式简单好看。使用OC语言写出来的程序一般来说,这个程序的大小就是其原来代码的大小,不会有很大的差别。不像其他语言一样,当一个程序完成了,结果这个程序的大小却是其原始代码的几倍甚至是十几倍。OC语言是一门与其他语言不同的语言,自然有它独特的地方。首先是代码文件,它主要有三种类型的代码文件13,有三种格式,分别是.h文件、.m文件、.mm文件。它不再是像C那样使用#includ来导入头文件,而是定义了一种全新的导入方式#import,这种导入方式会自动的检测是否重复导入的问题。当然OC语言也有缺点,如不支持援命名空间,不支持运

37、算符重载,当然也不支持多重继承。但是它可以实现多个接口。OC中的内存管理也与其他语言有一些区别。它不像Java那样有垃圾回收机制,但是它有自动释放池。自动释放池就是自动的集中的管理对象释放的一个容器,当然它本身也是一个对象,它有一个作用域,当程序执行到这个作用域时,自动释放池对象就会被释放掉,里面的对象自然也就释放了。在MRC模式下,如果这个对象是你创建的,那么你就负责这个对象的释放工作,如果是拷贝的话,那么你也将负责释放。OC是一门动态运行时的语言,也就是说是在运行时才会来确定数据的具体类型,并不是在编译的时候确定的。在编译的时候,只要是语法没有错误,它的编译器就不会给出红色的错误,一般给出

38、的是黄色的警告,这就说明编译时是通过的。这个机制即运行时机制是多态的基础。2.3 Xcode工具和MVC模式(1)Xcode工具Xcode是由苹果公司开发的集成开发工具,是运行在Mac OS X操作系统上的一种开发工具。OS X 和 iOS 应用程序的开发都可以使用Xcode工具,它是这两种程序最方便和最快捷的开发方式。Xcode具有统一的用户界面设计,编码、测试、调试都可以在一个简单的窗口内运行。Xcode是继承自NeXT的Project Builder。不管你是用C、C+、Objective-C来编写程序,或者是用Java来编写程序,又或者是在AppleScript里来编写脚本,你都会发现

39、 Xcode的编译速度极快。每次操作都很快速和轻松。The Xcode suite支持多种编程语言,例如:C语言、C+、Fortran、Objective-C和Objective-C+,并且支持Java、AppleScript、Python以及Ruby语言,还提供Cocoa、Carbon和Java等编程模式。它包含有自由软件GNU Compiler Collection。Xcode套件使用 GDB作为其后台调试工具。Xcode开发工具可以让你轻松的开发和维护你的应用程序,因为它的独特的虚拟模型和设计功能。你只需要在Xcode中选择你的应用程序中你所想要编写的部分,然后Xcode的虚拟模型和设计

40、功能将自动创建分类图表,这不仅仅可以显示代码,让你进行编程,还可以让你进行浏览、查看。你不需要担心的你的数据结构,这可以由Mac OS X Core Data API来帮你创建。除了这些功能之外,它还能自动的撤消、重做和保存,而不需要编写任何的代码或者是做任何的操作。Xcode的Apple Reference Library功能更加的有用,它可以为开发人员提供一个单独的搜索和显示界面。不仅有来自苹果电脑公司网站的在线文件,还有存放在你电脑上的文件。新的参考资料库甚至可以帮你将定期更新资料下载到你的电脑,保持文件的最新状态。如果你有这方面的问题的话,Xcode将帮你快速找到最新的答案。在Xcod

41、e3中所使用的编译器是gcc编译器,而在Xcode4之后的版本中,它所使用的编译器已经由gcc编译器替换成为新的LLVM编译器。而LLVM编译器的前端是Clang。GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它以GPL及LGPL许可证发行,是一套自由软件,是GNU计划的关键部分14,自由的类Unix及苹果电脑Mac OS X 操作系统的标准编译器。GCC原本只能处理C语言,有一个原名叫GNU C语言编译器。后来被快速的扩展,能够处理C+、Fortran、Pascal、Objective-C和Java与其他语言。Low Leve

42、l Virtual Machine简称LLVM,这是一个库,提供了与编译器有关的支持,可以进行一系列的与程序语言相关的操作,如编译期优化、链接优化、在线编译优化、代码生成等等。也就是说,它可以作为多种语言编译器的后台来使用。而Clang也是是一个编译器,是由C+编写、发布于LLVM BSD许可证下的、基于Objective C+LLVMC、C+和Objective C的编译器,它的目标之一就是超越GCC。Xcode可以进行无限的定制,比如对连编和调试工具、用户界面、连编过程、以及可执行文件的打包方式等等的定制。可以将文件添加到代码库、获取得到更新版本、进行版本迭代、以及提交修改的比较。(2)M

43、VC模式 MVC模式,就是模型-视图-控制器(Model-View-Controller)模式,这是一种软件设计模式,是由Xerox PARC在在20世纪80年代发明的。当时是专门为Smalltalk80这一编程语言发明的15,如今它已经被用户交互应用程序所通用,这是一种极为方便的设计模式。在iOS的程序开发中,MVC模式被使用的酣畅淋漓。而对于iOS的开发人员,能够充分的理解iOS的MVC模式,了解MVC模式,对程序的组织合理性,有着不可估量的作用。模型,即Model。模型层封装了应用程序的数据,不仅定义了操控该数据的逻辑运算,还定义了处理该数据的逻辑方法。模型可以有很多的方法,主要是用来处

44、理任务的。使用模型对象来处理数据,而被模型返回的数据是无关的,也就是说,数据的格式对模型不产生影响,一个这样的模型可以为多个视图提供数据,但并不建议这么做。当模型的对象改变或者有什么变化时,这个对象就会通知控制器的对象来更新与模型中数据相对应的视图,视图界面也就会相应的发生变化。这就是将数据集中在一个容器中,其他与这个数据相关的层次只需要调用模型提供的相关接口,就能轻松的访问到数据,这会使代码的重复率大大的降低。视图,即View。视图是看得见摸得着的、真实的与人们打交道的交互界面。可以根据需要显示的内容的不同,或者说需要显示的数据的不同,iOS系统提供了多种视图显示,例如:最基本的视图UIVi

45、ew、UITableView和滚动视图UIScrollView都是显示容器。人们可以与之进行交互,视图将会做出事件的相应。本质上还是在改变视图显示的数据。控制器,即Controller。控制器夹在模型和视图之间,充当媒介。如一个或多个视图之间或者一个或多个模型之间。控制器可以相应用户的交互,从而调用模型和视图去完成用户的要求。对于不同的UIView,有相应的UIViewController,对应MV中C。例如在iOS上常用的UITableView,它所对应的Controller就是UITableViewController。Model和View必须互相分离,不能互相通讯,只能通过Control

46、ler传递。开发人员在实际开发过程中,会因为各种各样的原因让单一的ViewController变成了集Model,Controller以及View在一起的一个大集合,这样必然就会导致VC的代码容量呈几何增长。这样的代码会存在以下几个问题:不利于后续维护;不利于支撑UI的,变动;不利于复用。而通过使用MVC设计模式,就可以使代码量骤降、易于维护,同时代码的复用性也会提高。2.4 SQLite数据库和JSON数据解析(1)SQLite数据库SQLite是一款支持多数SQL92标准的数据库,是较轻量级的关系型数据库系统。在使用SQLite时,不需要安装设置,也不需要进程来启动、停止或配置。不像其他S

47、QL数据库一样,作为一个单独的服务器进程16,从而可以被程序使用某种内部进程来进行通信,并且发送请求到服务器,完成接收查询结果的工作。在使用SQLite数据库时,没有中间的服务器进程,直接从磁盘上的数据库文件读写。SQLite遵循ACID,占用资源低,并且支持Windows、Linux、Unix等操作系统,可以识别多种编程语言。SQLite虽然比其他的数据库小,但是并不比其他数据库差。在SQLite数据库中,有一个非常特别的类型:无类型。也就是说,你可以将任何类型的数据保存到SQLite数据库去。iOS中内嵌有SQLite数据库,将SQLite3进行了封装。而不需要去进行复杂的操作,只需要将l

48、ibsqlite3.0.dylib数据库框架导入到文件中,就可以轻松的来使用数据库了。SQLite3数据库使用起来方便、便捷、结构紧凑、高效并且安全。(2)JSON数据解析JSON一般用于数据交互,是一种轻量级的数据格式。通常服务器返回给客户端的数据都是JSON格式或者XML格式的。JSON采用文本格式,是完全独立于语言之外的,但是也不可避免的使用一些了类似于C语言系列的习惯。正是因为这些特性,才使得JSON成为理想的数据交换语言,才这么的通用!JSON语法是JavaScript对象表示语法的子集:键值对中存储数据,逗号分隔开数据,对象保存在花括号中,数组保存在方括号中。JSON数据的书写格式

49、是:名称/值对,属于一一对应的关系。在名称/值对组合中,键值对的键写在前面,值写在后面,但是必须都用双引号括起来,中间用冒号分隔开来。例如“firstName”:“John”,firstName做键,而John则是值。JSON值可以是数字(整数或浮点数)、逻辑值(true 或 false)、字符串(在双引号中)、对象(在花括号中)、数组(在方括号中)或者是空。2.5 HTTP/TCP通讯(1)HTTP协议HTTP协议,学名叫做超文本传送协议。本协议是面向事物型的洗衣。这个协议是网络中的应用层协议。它保证了万维网上浏览器与服务器之间能够可靠地、安全的交换文本、声音、图像等各种文件的重要基础。这个

50、协议规定了浏览器怎么向万维网服务器发送请求,服务器又怎么向浏览器发送文件。它规定了客户和服务器之间的每次交互的信息,都是由一个ASCII码串构成请求并且和一个类似的通用的因特网邮件扩充的响应组成。这个协议的报文结构有两种,分别是请求报文和响应报文。这两种报文都是由三部分组成的,开始行、首部行、实体主体17。它们的不同之处就是开始行不同。前者是请求行,后者是状态行,用这个来区分它们。客户端发起一个请求,服务器经过接收这些请求后,就会在两者之间建立起一个连接通道,通过这个通道,互相之间就可以进行数据的传送。(2)TCP协议HTTP协议使用面向连接的TCP来作为运输层的协议,保证数据的可靠性。TCP

51、协议即传输控制协议,这是一个非常复杂的协议。当然它也有很多的特点,首先是面向连接的运输层协议。程序在进行使用之前都必须建立TCP连接18。在完成数据的传输之后,也要去进行连接的释放工作。其次是每一个连接都只有两个端点,也就是一对一、点对点的连接,这个端点不是主机也不是应用进程,而是套接字。什么是套接字呢?端口号加上IP地址就是套接字。点分十进制下的IP地址后面加上端口号,中间用冒号或者是逗号隔开。第三,它提供了可靠交付的服务,使用这个协议不用担心不安全的问题,只要遵循这个协议。它还提供全双工通信,就是两个端点之间都可以同时来发送数据信息。同时它还是面向字节流的协议。流的字面意思是流体,意思是流入到进程或者是从进程流出的字节序列。TCP协议

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论