毕业设计(论文)基于移动网络的新闻类软件开发与研究_第1页
毕业设计(论文)基于移动网络的新闻类软件开发与研究_第2页
毕业设计(论文)基于移动网络的新闻类软件开发与研究_第3页
毕业设计(论文)基于移动网络的新闻类软件开发与研究_第4页
毕业设计(论文)基于移动网络的新闻类软件开发与研究_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、本科毕业设计(论文)题 目 _基于移动网络的新闻类 软件开发与研究 姓 名 专 业 学 号 指导教师 郑州科技学院信息工程学院 二一五年六月目 录摘 要iabstractii前 言iii1 背景和意义11.1 开发工具和运行环境12 相关技术介绍32.1 ios简介:32.2 mac简介32.3 ios系统架构42.4 mvc设计模式42.4.1 mvc模型的作用62.5 objective-c 简介72.5.1 ui各控件简介102.6 网络数据请求112.6.1 异步get112.6.2 异步post122.6.3 网络请求的区别:133.1 主页简介143.2 具体内容页154 系统的详

2、细设计164.1 系统结构图164.2 系统的模块设计164.2.1 引导页模块174.2.2 浏览模块174.2.3 订阅模块174.2.4 投诉模块174.2.5 搜索模块174.2.6 内存释放模块184.2.7 登录模块184.2.8 刷新模块184.2.9 基础类模块184.2.10 详情模块195 系统的实现205.1 网络监听功能的实现205.2 浏览功能的实现205.3 左侧栏功能的实现215.3.1 订阅功能的实现225.3.2 投诉功能的实现255.4 右侧栏功能的实现265.4.1 登录功能模块275.4.2 搜索功能的实现285.4.3 清除缓存功能实现295.5 刷新

3、功能实现305.6 基础类功能的实现315.7 详情页面功能实现326 系统测试346.1 模拟测试346.2 真机测试346.3 程序上传367 总结与展望377.1 总结377.2 展望38致 谢40参考文献41基于移动网络的新闻类软件开发与研究摘 要随着信息网络时代的快速发展,中国移动互联网事业日新月异,网络与社会生活的紧密结合,衍生出许多新的事物。手机使用方式的多样化,智能手机以及互联网应用的普及,不断地改变着人们的生活方式。全球每一个国家、每一天、每一时,都在发生着不同的事情。在这样一个繁忙的社会中,没有人能够有时间守着电视机去关注那些新闻, 号外天下相当于是移动互联网时代的观看新闻

4、的新手段。该款app可以满足人们随时随地观看天下事,了解天下事,除了政治新闻之外,还有娱乐新闻,能够帮助人们让压抑已久的情绪有个释放的接口,同时大家还可以评论和分享,使得人们的生活更加有趣味!本文以一个真实的在线新闻类软件开发为例,从新闻类app的发展现状谈起,结合用户实际需求提出本应用类软件的总体结构和功能模块。然后通过基于xcode开发环境,利用oc, 语言,ui界面的绘制,实现了该新闻类软件。新闻类应用软件在市场上主要面向所有人群,随着人们不断去利用碎片的时间,时时关心天下事的需求的增加,我相信这类新闻社交类应用会受到人们的欢迎。关键词:移动互联网;智能手机;新闻;软件;开发based

5、on mobile network news type of software development and researchabstractwith the rapid development of information network era, chinas internet business with each passing day, the close combination of network and social life, and derived a lot of new things and phenomena. mobile phone use way diversi

6、fication, the popularity of smart phones and mobile internet application, constantly changing the way people live. every nation in the world, every day, every hour, in the different things. in such a busy society, no one can have time to keep the attention to the tv news, the outside world is so mob

7、ile internet era of the new ways of watching the news. the app can satisfy people anywhere at any time to watch whats going on in the world, to understand whats going on in the world, in addition to political news, entertainment news, can help people lets pent-up emotion has a release of interface,

8、at the same time you also can share, comment and make peoples life more interesting! based on a true online news development, for example, from the current situation of the development of news app, combining the reality of user demand puts forward the overall structure and function module of applica

9、tion software. then based on the xcode development environment, using the oc, language, and the ui interface, realize the news type of software. news application for all people in the market, as people continue to use of fragmented time, always care about whats going on in the world the increase of

10、demand, i believe that this kind of news social application will get the welcome of people. keywords:mobile internet;smart phones;news. software;development. 前 言现阶段,人们每一天都很繁忙,几乎都没有很完整的时间在电视机前观看新闻,每一个人几乎都是穿梭在地铁,公交车,火车上。然而又有很多人观看新闻,比如政治类,娱乐类,关心汽车的未来,还有科技的新品发布会等等各类的新闻。显然,在当今社会中,仅仅只靠电视机很难满足人们的需求。随着计算机应用

11、的迅速发展,网络应用不断扩大,如网易新闻和新浪新闻的出现,且这些应用正逐步深入到千家万户。人们迫切要求利用这些软件及技术知晓天下事,以满足人们对时事政治的了解,和世界科技发展的关心,与此同时也提高人与人之间的交流! 这一款新闻app我们是在ios系统下开发的,使用了oc 和 ui语言,每一款iphone手机都能下载和观看。本设计使用x-code开发工具,具有可视化编程界面、详细的提示功能以及完善的引导文档,软件开发人员使用起来非常方便。本设计首先概要性地介绍了设计中使用的关键技术、mvc模式等;然后给出模块的总体分析与设计,包括系统的需求分析,系统设计要求、系统的总体功能设计;其次用图表加文字

12、的方式对设计工作中的重点部分作出了详细的阐述;最后具体描述了模块的实现过程,并对关键技术的实现分析,进行代码解析。1 背景和意义移动互联网,就是将移动通信和互联网二者结合起来,成为一体。是指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动的总称。4g时代的开启以及移动终端设备的凸显必将为移动互联网的发展注入巨大的能量,2014年移动互联网产业必将带来前所未有的飞跃。移动互联网业务影响到沟通、娱乐、消费等各个生活的细节,进而也影响到销售方式、市场渠道等企业运营。截止到2014年4月,我国移动互联网用户总数达8.48亿户,我国移动互联网发展进入全民时代。2007年1月,苹果ceo史

13、蒂夫乔布斯在公司的macworld会上发布第一部iphone手机。到目前为止,iphone6 plus的上市和全球iphone手机用户量的大大增加,ios开发人员成为应用开发公司所争抢的对象,有权威部门调查数据显示,目前ios软件人才已出现了38万缺口,根据国家官方公布的数据,未来几年ios软件开发人才市场缺口将达百万,未来几年内,ios软件开发人员都将供不应求,高薪纳贤便成为社会发展所需。1.1 开发工具和运行环境ios开发者必须遵循苹果规定的开发流程。开发者必须使用mac os x操作系统,从ios开发者中心或者mac app store下载并安装最新稳定版本的xcode和ios sdk。

14、同时ios设备来联机调试。1、开发环境的要求硬件:(1)苹果mac系统电脑,必须是要基于intel的macintosh计算机;(2)iphone或者ipodtouch,主要作用是用来测试编写好的程序;软件:(1)苹果系统macos;(2)iphonesdk,sdk开发包中包含苹果公司集成的开发环境xcode、iphone模拟器及其它的一些开发工具。2、开发环境的简单介绍,开发环境有以下几个方面:xcode(主要开发工具在6.0以上)interface builder(快速设置设计工具)iphone simulator(iphone模拟器)sdk(software development kit

15、,软件开发工具包)iphone sdk包含哪些东西?在使用intel芯片的macintosh计算机上开发ios应用程序所需要的全部接口、工具以及大量资源都包含在iphone sdk内。苹果公司将大部分的系统接口发布在框架这种特殊的数据包内。一个框架就是一个目录,它包含一个动态共享库以及使用这个库所需要的所有资源(例如头文件、图像以及帮助应用程序等)。如果要使用某个框架,则需要将其链接到相应的应用程序上,这方面和使用其他的共享库相似。此外,您还需要告知开发工具在何处可以找到框架头文件以及其他资源。除了使用框架,苹果公司还通过标准共享库的形式来发布一些相关性的技术。由于ios以unix为基础,所以

16、操作系统底层的许多技术都源自开源技术,这些技术的许多接口可以从标准库和接口目录中访问。sdk中还包含下述的重要组件:xcode工具,提供了ios应用程序开发工具,包括如下关键应用程序:xcode是一个集成开发环境的工具,它负责管理应用程序工程的开发。使用者可以通过它来编辑、编译以及调试代码。xcode还集成了许多其他类的工具,它是在开发过程中使用到的主要应用程序。interface builder 以可视化编程的方式组装用户接口的工具。通过interface builder创建出来的接口对象将会直接保存到某种特定格式的资源文件中,并且在运行的时候加载到相应的应用程序中。instruments

17、为运行时性能的分析和调试工具。用户可以通过instruments 收集应用程序在运行时的行为信息,并且可以利用这些收集来信息确认可能存在的一些问题。iphone模拟器是mac os x平台应用程序,它对ios技术进行模拟,以便于用户在基于intel的macintosh计算机上测试和运行ios应用程序。2 相关技术介绍2.1 ios简介:ios是由苹果公司专门开发的移动操作系统。苹果公司最早是在2007年1月份的macworld大会上公布这个操作系统,最初是设计给iphone使用的,后来陆续的套用到了ipodtouch、iphonewotch以及appletv等产品上。ios与苹果的macosx

18、操作系统一样,都是属于类似于unix的商业操作系统。原本这个系统名为iphoneos,因为ipad,iphone,ipodtouch都是使用的iphoneos,所以,2010wwdc大会上宣布改名为ios(ios是美国cisco公司网络设备操作系统注册的商标,苹果改名已经获得cisco公司的授权)。ios是运行于iphone、iphonewotch以及ipad等设备的操作系统,它管理设备硬件并为手机本地应用程序提供了基础的技术。该操作系统根据设备不同,还可以提供相应的系统应用程序,如phone、mail以及safari,这些应用程序可以为用户提供标准的系统服务。iphone sdk开发包含开发

19、、安装以及运行本地应用程序所需的工具和接口。本地应用程序可以使用ios系统框架和objective-c语言进行构建,并且可以直接运行于ios设备上。它与web应用程序有所不同,一方面是它位于所安装的设备上,另一方面是不管是否有网络连接它都能运行。2.2 mac简介mac os是一套运行在macintosh系列电脑上的操作系统。mac os是首个在商用领域成功的图形用户操作界面系统,目前的最新的系统版本是os x 10.10 yosemite,并且在网上也有可以在pc上运行的mac系统,它简称为mac pc。mac系统是基于unix内核的图形化操作系统;一般情况下在普通的pc上是没有办法安装的操

20、作系统,由苹果公司自行开发的操作系统已经达到了os 10,代号为mac os x,这是mac电脑诞生15年来发生的最大变化。新系统非常可靠,它的许多方面特点和服务都体现了苹果公司的理念。2.3 ios系统架构ios的系统架构可以分为四个层次:核心操作系统层(the core os layer),核心服务层(the core services layer),媒体层(the media layer)和可轻触层(the cocoa touch layer),如图2.3所示。该操作系统占用240mb左右的内存空间,ios的用户界面的概念基础,是能够支持多点触控操作的。控制方法包括上下左右的滑动,轻触开

21、关或按钮。与系统互动包括滑动 (swiping),轻按(tapping),轻扫(screen),挤压(pinching)及旋转(reverse pinching)。此外,通过系统内置的加速器,可以令其旋转装置,从而可以改变其轴以令屏幕的方向发生改变,这样的设计令iphone更便于使用。图2.3 系统架构图2.4 mvc设计模式模型-视图-控制器(model-view-controller,简称mvc)是xerox parc在20世纪80年代为编程语言smalltalk-80发明的一种软件设计模式,至今已经广泛的应用于用户交互应用程序中。在ios开发中mvc的机制被使用的可谓是淋漓尽致,因为模型

22、和视图之间不能够直接通信,必须经过控制器在中间做一个中转;模型可以通过控制器传入到视图中,然后可以在视图中给自己定义的控件赋值。充分理解ios的mvc模式,有助于我们程序的组织更加合理,简写代码过程,利于程序执行速度。mvc模型如图2.4所示。图2.4 mvc关系图模型对象模型对象用于封装特定程序的数据,定义处理这些数据的逻辑和计算方法。例如,模型对象可以表示游戏中的角色,或者是通讯录中的联系方式。一个模型对象可以和别的模型对象有一对一关系,也可以有一对多的关系。有时,应用程序的模型层的多个对象会构成一种有效的关系网。在程序中,用于表示永久状态的大部分数据在其被加载到程序中后都会驻留在模型对象

23、中。这是因为模型对象表示的是相关特性问题领域的专业知识。他们是可以再相似问题领域被复用的。理想的情况下,模型对象不应该和用于表示其数据并允许用户编辑这些数据的视图有任何的关系的模型对象不应该和用户界面以及其呈现方式有任何关系。视图对象引用程序中的视图对象就是用户可见的对象。视图对象知道如何自行绘制并响应用户的操作。视图对象的主要作用就是展示程序中模型对象的数据,并允许用户对这些数据进行编辑。通常在mvc模型的程序中模型和视图分开来写,就是为了优化程序,减少代码之间的耦合度,视图对象与模型对象是相互解耦的。由于视图对象通常都是可复用和可配置的,因此如果在其它的类中需要用到这块儿视图,可通过引入他

24、们的头文件即可,因此他们可以适用于不同的应用程序。uikit和appkit框架中都提供了不同的视图类。同时,ib(interface builder)中也在自己的库中提供了很多的视图对象。控制器对象在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。控制器对象解释在视图对象中进行的用户操作,并将新的或更改过的数据传达给模型对象。模型对象更改时,一个控制器对象会将新的模型数据传达给视图对象,以便视图对象可以显示它。2.4.1

25、mvc模型的作用mvc的低耦合性、高重用性、可维护性等优点显而易见,使得原本复杂的代码与界面的交互变得简单、清晰、明了,开发者可以把更多的精力放在前端界面的设计上,而不用绞尽脑汁去思考究竟应该如何使界面得到同步,这样减轻了设计压力,也从另一方面使用户得到更多更好的享受体验。纵观ios经典nativeapp的所有应用软件,几乎都具有一个很大特点,那就是“炫”。清新的画面配以简单的手势操作,颠覆着用户的思维方式,小巧精悍。在最初的jsp网页中,像数据库查询语句这样的数据层代码和像html这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心地计

26、划和不断的尝试。mvc从根本上强制性地将它们分开。尽管构造mvc应用程序需要一些额外的工作,但是它带给我们的好处是毋庸置疑的。多个视图能共享一个模型。如今,同一个web应用程序会提供多种用户界面,例如用户希望既能够通过浏览器来收发电子邮件,还希望通过手机来访问电子邮箱,这就要求web网站同时能提供internet界面和wap界面。控制器连接不同的模型和视图去完成用户的需求,也可以构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型机型处理,然后选择适当的视图将处理结果显示给用户。在mvc设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并

27、把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。过去mvc模式并不适合小型甚至中等规模的应用程序,这样会带来额外的工作量,增加应用的复杂性。但现在多数软件设计框架,能直接快速提供mvc骨架,供中小型应用程序开发,此问题不再存在。对于开发存在大量用户界面,并且逻辑复杂的大型应用程序,mvc将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建mvc模式框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软件开发的效率。2.5 objective-c 简介objective-c,通常写作objc和较少用的objectiv

28、e c或obj-c,是扩充c的面向对象编程语言。它主要使用于mac os x和gnustep这两个使用openstep标准的系统,而在nextstep和openstep中它更是基本语言。objective-c可以在gcc以及clang运作的系统上编写和编译,因为gcc与clang含objective-c的编译器。1980年代初布莱德确斯(brad cox)在其公司stepstone发明objective-c。他对软件设计和编程里的真实可用度问题十分关心。objective-c最主要的描述是他1986年出版的object oriented programming: an evolutionary

29、 approach. addison wesley. isbn 0-201-54834-8.objc和c+基本上是两门语言,没有太大的关系。objc本身是静态语言,编译后就是机器码,执行效率很高,但引入了很多类似python、ruby的动态特性,像动态类型推断,id,selector,block等特性,所以又非常灵活。objective-c在计算机编程语言中有悠久的历史,80年代初brad cox和tom love发明了objective-c,1988年乔布斯的next公司获得了这门编程语言语言的授权,并开发出了objective-c的语言库和 nextstep的开发环境。nextstep是以

30、mach和bsd为基础,objective-c是其语言和运行库。乔布斯回归苹果,nextstep 成了max os x的基础,objective-c成了apple的当家语言,现在基本上是apple在维护objective-c的发展。与其他面向对象语言相比,objective-c采用了一个非常小的运行时库代替了虚拟机。在苹果的appstore推出之前,objective-c一直相对小众,但是其优秀的语言特性似乎一直在为后面的爆发积蓄力量,当苹果平台级的应用出现之后,objective-c开始大放异彩,静态语言的效率和动态语言的特性得到众多程序员的喜爱,这一点在tiobe语言排行榜上表现的非常明显

31、。2007年iphone刚推出的时候,objective-c在tiobe上排名45,2011年排名第5,2012年7月排名第3,成功超越了老牌编程语言c+,排在objective-c前面的是经典语言c、java。2007年之前objective-c小众是因为它只能开发苹果的操作系统和软件,后来之所以流行恰恰也是因为这一点,这不仅让人感慨这无常的人生。不过有一点是没有变,objective-c一直是一门优秀的编程语言,而且它一直在发展。从1.0到2.0,从面向对象的c语言扩展,到内存引用计数管理,属性管理,引入块的概念,实现自动引用计数等等,几乎每年都会有新特性加入,这在其他编程语言中是很少见的

32、,这些新特性的引入也不断为开发人员带来软件设计和研发上的便利。 编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。1、override关键字:(1) 重写父类中的virtual修饰的方法,实现多态objective-c可以说是一种面向对象的c语言,在objective-c的代码中可以有c和c+语句,它可以调用c的函数,也可以通过c+对象访问方法。当我们使用oc语言的时候,我们不需要了解它是如何得来的,只需要拿着用即可。(2) 字符串objective-c通常不使用c语言风格的字符串。大多数情况下是使用foundation框架的nsstring类型的字符串

33、。 nsstring类提供了字符串的类包装,支持unicode,printf风格的格式化工具等等。它是在普通的双引号字符串前放置一个符号,如下面的例子所示:nsstring mystring = my stringn;nsstring anotherstring = nsstring stringwithformat:%d,%s, 1, string;2、类类在oc中有着重要的作用,类是对同一类事物高度的抽象,在类中可以定义这一类对象所应具有的特有属性和方法,对象时类的一个实例,是一个具体的事物;类与对象是抽象与具体得的关系。类是一种数据类型,它的变量就是对象。如同所有其他的面向对象语言,类是

34、objective-c用来封装数据,以及操作数据的行为的基础结构。对象就是类的运行期间实例,它包含了类声明的实例变量自己的内存拷贝,以及类成员的指针。objective-c的类规格说明包含了两个部分:接口和实现。接口部分包含了类声明和实例变量的定义,以及类相关的方法。实现部分包含了类方法的实际代码。3、方法objective-c中的类可以声明两种类型的方法:实例方法和类方法。实例方法的创建以减号打头,它在类的一个具体实例的范围内执行,调用的时候,必须先实例化一个这个类的对象,然后用对象去调用这个方法;如果是在这个类当中调用自身的方法,可以用到类中特有的隐藏属性self去调用。而类方法,比较起来

35、,它的创建是以加号打头,如果在别的类中想要调用这个方法,必须以这个类的类名来调用。4、属性属性是用来代替声明存取方法的便捷方式。属性不会在你的类声明中创建一个新的实例变量。他们仅仅是定义方法访问已有的实例变量的速记方式而已。暴露实例变量的类,属性的创建一般用到了property和synthesize关键字;属性设置里面默认的是atomic,因此它了代替getter和setter语法。类还可以使用属性暴露一些“虚拟”的实例变量,他们是部分数据动态计算的结果,而不是确实保存在实例变量内的。5、协议协议声明了可以被任何类实现的方法,里面有可选实现,有必须实现。协议不是那些类本身,他们仅是定义一个接口

36、,其他的对象如果接受了协议,就必须实现协议里面必须实现的方,就叫做符合协议。在大多数委托协议情况下,协议和代理是共同存在的,代理是一个概念,它像是一种关系,如果有些事情自己不想做,可以委托给代理,让他代替自己完成这件事情,此时的委托便是自己的代理。使用某种协议仅仅是简单的实现协议定义的方法而已。有些协议要求你明确的表明你支持这种协议,协议可以指定必须或者可选的方法。在你深入开发的过程中,你应该花点时间学习协议以及他们的用途。2.5.1 ui各控件简介窗口uiwindow,iphone的规则是一个窗口,多个视图,窗口是你在app显示出来你看到的最底层,他是固定不变的,基本上可以不怎么理会,但要知

37、道每层是怎样的架构。视图uiview,是用户构建界面的基础,所有的控件都是在这个页面上画出来的,你可以把它当成是一个画布,你可以通过uiview增加控件,并利用控件和用户进行交互和传递数据。窗口和视图是最基本的类,创建任何类型的用户界面都要用到。窗口表示屏幕上的一个几何区域,而视图类则用其自身的功能画出不同的控件,如导航栏,按钮都是附着视图类之上的,而一个视图则链接到一个窗口。视图控制器视图控制器uiviewcontroller,你可以把他当成是对你要用到视图uiview进行管理和控制,你可以在这个uiviewcontroller控制你要显示的是哪个具体的uiview。另外,视图控制器还增添了

38、额外的功能,比如内建的屏幕旋转,转场动画以及对触摸事件的支持。它还可以监控视图上的一些数据发生了变化,从而可以去调用相应的方法。uikit框架uibutton:主要是我们平常触摸的按钮,触发时可以调用我们想要执行的方法;uisegmentcontrol:选择按钮,可以设置多个选择项,触发相应的项调用不同的方法;uiswitch:开/关按钮,可以选择开或者关;uislideer:滑动条,常用在控制音量大小和视频的进度等方面;uitextfield:文本输入框,用于提供给用户输入文字的地方;uitableview:表格视图,可以定义你要的表格视图,表格头和表格行都可以自定义;uipickervie

39、w:选择条,一般用于日期或者是地理位置的选择;uisearchbar:搜索条,一般用于搜索功能类;uitoolbar:工具栏:一般用于主页面的框架,可供用户选择不同的页面;uiactivityindicatorview:进度条,一般用于显示下载进度。uiprogressview:进度条,一般用于显示下载的进度条2.6 网络数据请求在这个信息化的时代,移动网络的重要性不言而喻,对于移动客户端来说,网络是客户端能够保持正常运行的基础。对于常见的网络请求有同步get请求,同步post请求,异步get请求,异步post请求。2.6.1 异步getnsstringurlstr=nsstringstrin

40、gwithformat: /56/13/1308200901454.jpg;nsstringnewstr=urlstrstringbyaddingpercentescapesusingencoding:nsutf8stringencoding;根据上面的地址创建url:nsurlurl=nsurlurlwithstring:newstr;根据url创建请求体:nsurlrequestrequst=nsurlrequestrequestwithurl:urlcachepolicy:nsurlrequestreloadignoringlocalcac

41、hedatatimeoutinterval:10;根据请求体创建异步网络链接:nsurlconnectionsendasynchronousrequest:requstqueue:nsoperationqueuemainqueuecompletionhandler:(nsurlresponseresponse,nsdatadata,nserrorconnectionerror)经过网络请求,得到我们想要的数据nsdata:self.imageview.image=uiimageimagewithdata:data;通过对请求到的数据进行解析:nsdictionarydic=nsjsonseri

42、alizationjsonobjectwithdata:dataoptions:nsjsonreadingmutablecontainerserror:nil;nslog(%,dic);2.6.2 异步postnsstringurlstring=/v3/gw;1. 创建url对象nsurlurl=nsurlurlwithstring:urlstring;2. 生成一个可变的请求nsmutableurlrequestrequest=nsmutableurlrequestrequestwithurl:url;3. 设置请求方式requestsethttpmet

43、hod:post;4.拼接好参数nsstringparamsstring=method=user.item.get&appkey=43db911a75b88c11&format=json&user=ttr2008&pageno=1&pagesize=10;5.把字符串转成datansdatadata=paramsstringdatausingencoding:nsutf8stringencoding;6.把参数放到请求体里面requestsethttpbody:data;7.和服务器建立异步链接nsurlconnection connectionwithrequest:request dele

44、gate:self;一般的,当创建异步连接时,很少用到第一种方式,经常使用的是代理方法。关于nsurlconnectiondatadelegate,我们经常使用的协议方法为一下几个:1.服务器收到请求时调用的方法-(void)connection:(nsurlconnection)connectiondidreceiveresponse:(nsurlresponse)response 2.当收到服务器返回的数据时触发,返回可能是资源片段,调用此方法-(void)connection:(nsurlconnection)connectiondidreceivedata:(nsdata)data 3

45、.当服务器返回所有数据时触发, 数据返回完毕,调用此方法-(void)connectiondidfinishloading:(nsurlconnection)connection 4.请求数据失败时触发,调用此方法5.-(void)connection:(nsurlconnection)connectiondidfailwitherror:(nserror)error 2.6.3 网络请求的区别:get请求和post请求的区别:1. get请求的接口会包含参数部分,参数会作为网址的一部分,服务器地址与参数之间通过?来间隔。post请求会将服务器地址与参数分开,请求接口中只有服务器地址,而参数会

46、作为请求的一部分,提交后台服务器。2. get请求参数会出现在接口中,不安全。而post请求相对安全。3. 虽然get请求和post请求都可以用来请求和提交数据,但是一般的get多用于从后台请求数据,post多用于向后台提交数据。同步和异步的区别:同步链接:主线程去请求数据,当数据请求完毕之前,其他线程一律不响应,会造成程序就假死现象。异步链接:会单独开一个线程去处理网络请求,主线程依然处于可交互状态,程序运行流畅。3需求分析在软件项目开发中,需求分析是关乎软件项目开发的成败关键;在开发一款软件之前,要有足够的市场调研,考察用户需要什么样的服务,我们才能对症下药,做出来的软件才能够深的用户的喜

47、爱。随着现代化网络的快速崛起,智能手机的各种应用软件应运而生,而新闻类的上线软件也是数不胜数,如果想要本款软件有出众之处,就必须具备功能强大,界面美观,流畅度较高这些特点,才能够获得用户的赞美。3 主页3.1 主页简介主页由三部分组成:左侧栏、主页面和右侧栏。1. 左侧栏由6行标题内容组成,每一行都是由一个图片和一个导航标题组成,点击每一个导航标题都能进入相应的标题内容中。导航标题依次是:首页、聚投诉、订阅、读图、本地、俱乐部。其中首页就是主页面,聚投诉是由曝光和投诉页面组成,展示方式有两种, 一种是一张图片、新闻标题、新闻出自哪里、围观人数组成; 另外一种是新闻标题、 新闻出自哪里、围观人数

48、组成。读图页面是由热点和明星页面组成,展示方式是由图片和新闻标题组成。本地的页面可以展示本地的的天气和本地的新闻,用户进入每一个页面都会自动加载数据,在顶部的时候向下拖动,刷新当前页面,在页面底部向上拖动展开显示更多条新闻。点击每一块内容都能进入详情页面。俱乐部页面通过扫描二维码进入一个群。订阅页面可以订阅自己感兴趣的的刊物,通过点击订阅刊物,进入感兴趣页面,感兴趣页面是由一个标题导航和标题内容组成。标题导航依次是:新闻,娱乐,体育,财经,科技,汽车,笑话,休闲,美图。点击每一个标题在标题内容中能够展示具体的内容,通过点击每一个号按钮可以进行订阅,返回到我的订阅界面就会看到自己感兴趣的刊物,通

49、过点击每一个号就会取消自己的感兴趣的刊物。2. 主页面的构成:导航栏、图文内容。其中导航栏能够进入左侧栏和右侧栏,图文内容是由标题导航和标题详情内容组成。标题导航显示12个主要的标题,依次是:首页、新闻、女性、娱乐、科技、体育、探索、财经、汽车、军事、搞笑、星座。每一个标题都代表着一类的新闻。标题导航, 是可以滑动的,选中每一个标题都可以在标题详情内容中展现具体的标题内容。 百题详情内容中,其中首页和新闻这两块图文内容的展示方式:内容头和内容尾,内容头是一个可以滚动的视图,包含新闻的标题和图片,但是首页和新闻又有所不同,首页的内容头是不会自动滚动,但是新闻页面的内容头是一个可以自动来回滚动的视

50、图。首页和新闻的内容尾展示方式有所不一样,首页的内容尾是由一个图片和标题展示,但是新闻的内容尾是由两种不同的方式展示的,一种是由一个图片、标题、出自哪里、围观人数组成,另外一种是由三个图片、标题、新闻出自哪里、围观人数组成。科技、女性、体育、探索、财经、星座、军事这几块图文内容的展示方式也是由两种方式展示,一种是由一张图片、标题、新闻出自哪里、围观人数组成,另外一种是由新闻标题、新闻出自哪里、围观人数组成。娱乐和新闻模块是由一张图片和新闻标题、新闻出自哪里、围观人数组成。搞笑模块是由新闻标题、挖笑话、围观人数组成的。用户进入每一个页面都会自动加载数据,在顶部的时候向下拖动,刷新当前页面,在页面

51、底部向上拖动展开显示更多条新闻。点击每一块内容都能进入详情页面。3.右侧栏的构成:头像、登录界面和三行标题内容组成。点击头像可以进入登录界面, 点击新浪微博和腾讯可以进入相应的登录界面,当登录完成后,头像就会展示自己的头像,再点击头像,就会进入个人详情页面,展示个人的基本信息,还可以退出当前登录。标题内容依次是:消息,探索,缓存清除。点击消息进入消息的详情界面,就会展示最新的消息,从顶部向下拉,能够加载历史消息,点击返回按钮又可以进入右侧栏。点击探索按钮可以进入详情页面,能够通过搜索关键字可以得到自己想要的新闻,点击每一块内容都能进入详情页面,点击返回按钮又可以进入右侧栏,再点击探索按钮进入详

52、情页面就会展示自己搜索的的历史记录。点击清除缓存按钮就会弹出一个提示框,将提示你清理内存中的缓存。3.2 具体内容页具体内容页面,也就是详情页面,其主要组成为:新闻的具体内容,用户可以通过上下滑动来观看更多的相关消息;页面的最下端附有点赞和点差评的功能,用户如果对此则新闻有兴趣,还可以通过评论达到与用户之间的信息交流。新闻的具体内容由新闻标题,新闻的内容和图片组成的具体展现。用户的评论是由用户头像,用户名和评论内容,评论时间组成;点击更多评论,可以看到对这则新闻进行评论的相关内容。详情页面的低端还有分享功能,用户可以通过第三方登录进行分享。4 系统的详细设计对基于ios平台的新闻社交客户端的设

53、计与实现进行需求分析和总体设计之后,下一步就要对系统的各功能模块进行详细的设计。本章首先对系统的数据库设计进行详细的说明。然后,将系统的所有功能进行模块划分,有相同页面布局或者是功能功能类似的模块儿放在一起进行编写,再通过对系统整体进行分析,根据流程图绘制工具,绘制出系统的框架结构。4.1 系统结构图图4.1 系统结构图4.2 系统的模块设计根据系统结构图的分心,得到了这个工程创建的大体流程,先设计主页面的复用视图控制器,左右两边的抽屉,然后开始创建里面的每一个对应的基本模块儿,再根据基本模块的需求做出简要的概括和分析:4.2.1 引导页模块引导页模块:用户在首次使用该软件的时候出现的引导页面

54、,既可以指导人们如何使用该软件,也可以让用户看到该软件时眼前一亮,同时能够告知用户现在使用的软件名, 以后升级版本的时候,这个引导页也是必不可少的,同时能够展现该软件的特色。4.2.2 浏览模块浏览模块:新闻最主要的作用就是让用户浏览各类新闻,了解不同的时事,包括时事政治,娱乐,体育,汽车等各类新闻,我们将各类新闻放在一个引导标题模块中,用户能够选择自己感兴趣的模块去阅读新闻,这样既节省的大家的时间,又提高的阅读效率。每一个模块展示内容的方式既有相同之处,又有不同之处,展示内容方式的多样性,增加读者的阅读兴趣。4.2.3 订阅模块订阅模块:尽管有了浏览标题模块之外这是远远不够的,类别毕竟有限,

55、很难满足用户的需求,因此设计了订阅模块。订阅模块的内容更加详细,每一个用户都有自己的喜好,当用户想对哪一个内容有更加深入的了解,就可以使用订阅模块,可以订阅自己感兴趣的内容,这样节省用户的时间,同时也体现我们该款软件的设计合理性。4.2.4 投诉模块投诉模块:在我们每个人的身边,每天都有发生令我们感到不满的事情,当我们想要对外说出这种不满的时候,却发现找不到一条好的路径。曝光和投诉模块提供给用户很多的注意的消息,他们也可以参与讨论。这也提醒了用户在日常的生活中应该注意这些方面,以免在以后的生活中遇到类似的问题。4.2.5 搜索模块搜索模块:在新闻的主页面展示的类别还是有限的,而且新闻模块儿的类

56、型并不是特别的一致,但是本质模块还是很多的,仅仅只有几个模块很难达到用户的需求,用户通过搜索关键字,以满足自己的需求,搜索模块不仅能够快速简洁的搜索自己想要的哪一类相关的新闻,同时还能够记录用户曾经搜索了哪些内容。4.2.6 内存释放模块内存释放模块:清理内存缓存的内容,释放内存。在阅读每一条新闻的时候,内存就会自动记录已经浏览过的内容,尤其是图片,如果图片不缓存,当用户返回的时候,重新加载图片会耗用大量的流量,用户体验很不好,所以需要将浏览过的内容进行缓存,这样会占用很大一部分的内存,但是内存是有限的,这时,我们就需要清理内存。不仅能够提高手机的运行速度,而且还能提高用户的体验度。4.2.7

57、 登录模块登录模块:用户能够通过登录新浪微博和腾讯qq完成任务获得相应的奖励,将自己看到好的或者自己喜欢的新闻进行分享或者是参与评论,从而提高的互联网的传播特性和互动特性。4.2.8 刷新模块刷新模块:国内外的新闻时时刻刻都在更新,不能够让用户每次观看的时候都是之前看到的旧数据,所以刷新模块一定不能少;一定要把最新的新闻信息传达到用户手里,号外天下的更新模块就是为了确保新闻的及时功能新,进而也保证新闻的及时性。4.2.9 基础类模块基础类模块:基础类模块的设计,是为了能够大量减少程序员的工作量,应为这个工程创建下来,有很多的类都可以重复的被利用;详细的分析整个应用,在工程初期需要建多少个基础类,以供

温馨提示

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

评论

0/150

提交评论