毕业设计(论文)-基于ios的淘宝客户端的设计.doc_第1页
毕业设计(论文)-基于ios的淘宝客户端的设计.doc_第2页
毕业设计(论文)-基于ios的淘宝客户端的设计.doc_第3页
毕业设计(论文)-基于ios的淘宝客户端的设计.doc_第4页
毕业设计(论文)-基于ios的淘宝客户端的设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

基于ios的淘宝客户端的设计 二 一 四 届 毕 业 设 计 课题名称:基于ios的淘宝客户端学 院:信息工程学院专 业:电子信息工程班 级:24031001学 号:2403100119姓 名:刘胜文指导老师:秦菁完成时间:2014.06二一四年六月 IV摘 要 购物是人们生活不可或缺的重要部分,随着社会的进步和科技的发展,购物已经呈现出多元化发展的趋势。与传统购物,网络购物越来越受到人们的欢迎,与此同时,随着生活节奏的加快,与此同时,便携的电子购物方式越来越受到人们的青睐。比人们越来越注重灵活与便携。随着移动互联网和移动智能终端的兴起,移动终端购物软件也蓬勃发展起来。在众多移动终端操作系统中,苹果的ios作为其中的翘楚自然备受开发者关注。设计并实现基于ios的淘宝客户端。本文先介绍了本次课题的研究背景和意义等,再介绍了移动终端的发展趋势以及ios的相关技术,包括ios平台框架、Objective-C的语言特点和内存管理机制、MVC设计模式、Xcode的使用等。随后从性能和功能两方面对ios淘宝客户端的需求进行分析,将客户端分作商品展示和淘宝登陆两大功能区,并对这两大功能区分别进行分析和设计。最终完成了在ios平台上淘宝购物的实现本文还对程序中网络数据的获取进行了详细的阐述目前该客户端已经完成,程序界面简单明了,易于操作,软件运行效果良好,达到预期的目的。 关键词:淘宝,ios,Xcode,Objective-C ABSTRACTShopping is an important integral part of peopleslives,with the development of social progress and technology, shopping has shown a trend of diversification. With traditional shopping, online shopping more and more popular, at the same time, with the accelerated pace of life, at the same time, portable electronic shopping more and more people of all ages. There is a growing emphasis on flexible than with portable. With the rise of mobile Internet and mobile intelligent terminals, mobile terminals shopping software also flourished. Among the mobile terminal operating system, Apple ios as one of the leading developers naturally much attention. Designed and implemented based on ios Taobao client.This paper first introduces the research background and significance, etc., and then introduces the development trend of mobile terminals and ios related technologies, including the ios platform framework, language features and memory management mechanism in Objective-C, MVC design pattern, Xcodes such use. Then from both performance and functionality needs ios Taobao client on the analysis, the client divided into merchandise display and Taobao landed two functional areas, and these two functional areas were analyzed and design. Finally completed on the ios platform Taobao paper also realize the network data acquisition program carried out in detailAt present, the client has completed the program interface is simple and easy to operate, the software running well, to achieve the desired goal.Keywords: Taobao ,ios,Xcode,Objective-C目 录摘 要IABSTRACTII前 言1第一章:ios相关技术的介绍41.1 开发环境41.1.1 硬件环境41.1.2 软件环境41.2 Xcode的使用41.3 开发语言61.3.1 开发语言简介61.3.2 语言特点61.3.3 与c+的区别61.3.4 内存管理机制61.4 MVC设计模式81.5 ios框架10第二章 程序的模块划分13第三章 ios淘宝客户端分析173.1 客户端的需求分析173.1.1 对功能的规定173.1.2 对性能的规定173.2 各分区的功能分析173.2.1商品分类分区183.2.2淘宝登录分区183.3 客户端的数据分析183.3.1 网络数据请求方式的设计183.3.2 JSON数据解析设计和实现183.3.3 JSON数据架构轮廓183.3.4 商品分类数据的获取193.4数据的传输21第四章 系统功能实现254.1 界面的实现254.1.1 主界面的实现254.1.2 商品分类分区界面的实现254.1.3 淘宝登陆分区界面的实现264.2 UITableViewCell的自定义264.3 淘宝账号登录与注册的实现264.4 数据存储的实现274.4.1 属性列表274.4.2 对象归档274.4.3 SQLite284.4.4 Core Data28第五章:程序测试295.1 软件测试的必要性295.2软件测试的目的295.3 软件测试的原则295.4 模拟器测试305.5 真机(iphone5s)测试30结 论34参考文献35致 谢37 基于ios的淘宝客户端的设计前 言1)课题研究的背景 与人类出现互联网之前的人类购物方式相比,如今人们的购物方式已经呈现出多元化发展趋势。随着社会的发展与科技的进步,现如今,网络购物凭借不受时间局限,不受地域局限,以及在人力物力上的减少等方面的优势迅速崛起,成为当今人们购物的主要凡是之一。而移动终端作为互联网的重要部分,自然备受关注,移动终端应用已经渗透到人们生活的方方面面,并扮演着越来越重要的角色。可以不夸张的说,随着它的迅猛发展,现今的移动端应用不仅仅只是一种方便生活的工具,更是一种文化现象。而购物作为人类生活不可或缺的部分,更实在互联网上掀起大波澜。各大厂家纷纷出招,掀起节日购物的狂潮。本次设计基于网络购物的兴起和ios的新颖,流行和强大的用户体验以ios平台淘宝客户端的设计与实现作为研究方向,旨在设计一个移动端淘宝购物的应用软件。2)移动终端操作系统简介 移动终端操作系统主要应用在智能手机上。主流的智能手机有Google 的Android和苹果的ios等。智能手机与非智能手机都支持JAVA,智能机与非智能机的区别主要看能否基于系统平台的功能扩展,非JAVA应用平台,还有就是支持多任务。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)。操作系统占用大概240MB的存储器空间。Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Google与开放手机联盟合作开发了Android(安卓),这个联盟由包括中国移动、摩托罗拉、高通、宏达电子和T-Mobile在内的 30 多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。 Windows Mobile系统包括Pocket PC和Smartphone以及Media Centers,Pocket PC针对无线PDA,Smartphone专为手机,已有多个来自IT业的新手机厂商使用,增长率较快。 Symbian(塞班)是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML、以及3G技术。最重要的是它是一个标准化的开放式平台,任何人都可以为支持Symbian的设备开发软件。与微软产品不同的是,Symbian将移动设备的通用技术,也就是操作系统的内核,与图形用户界面技术分开,能很好的适应不同方式输入的平台,也可以使厂商可以为自己的产品制作更加友好的操作界面,符合个性化的潮流,这也是用户能见到不同样子的symbian系统的主要原因。为这个平台开发的java程序已经开始在互联网上盛行。用户可以通过安装这些软件,扩展手机功能。3)国内外发展状况 手机与互联网的融合形成的移动互联网业务是与传统互联网以及传统移动通信业务完全不同的新型业务,移动互联网催生的新型需求日益成为传统IT与通信巨头的蓝海。随着社会的不断发展,各种各样的手机软件参与了人类的活动和社会活动,因此改善人和人之间的关系,使人对人的交流更为广泛。还可以促进大脑智力的发展,让人们的思维更活跃。现今,人类己进入了信息化网络3G时代,手机的应用范围越来越广泛。iOS最初是设计在iPhone上的操作系统,苹果公司于2007年1月9日的WWDC大会上公布了这个系统,并命名为iPhone OS,但随着此系统在iPod touch、iPad以及Apple TV等苹果产品上的广泛应用,苹果公司于2010年6月7日WWDC大会上将其改名为iOS。目前苹果的iPhone已经取得很大成功,其推出的软件商店模式也使得开发者大量参与进来,极大丰富了iPhone的功能,也使开发者有了致富机会,而在中国,移动、电信、联通纷纷推出自己的应用程序商店,并不只为效仿苹果App Store的商业模式,更多的是看到丰富的应用程序在未来将成为用户选择运营商和手机平台的决定因素;而对于开发者来说,手机软件商店开发者分成模式将成为他们的另一个金矿。同时iPhone最大的问题,这是一个封闭的系统,代码的不开源,从操作系统到开发语言的独具一帜,这注定了开发人员不多,相对于其他操作平台开发人员渐现后劲不足。4)移动终端发展趋势 鉴于如今移动终端尚有些不足之处,未来移动终端可能会朝如下几方面发展:1. 向更加智能化发展 智能终端是移动通信终端与PC融合的产物,也是和3G技术相伴而生的概念。智能终端因为是电脑与手机融合的产物,很多电脑上已有的统一标准都可以继续沿用,而且智能终端标准相对更加一致,也更容易衍生出统一的行业标准,为3G应用铺平标准之路。随着中国3G网络进程的加快,移动运营网络的带宽和传输速度会不断提高,针对智能终端的内容服务和数据业务也将不断丰富,这些都将成为推动中国智能终端市场发展的有利因素。 相比于传统手机,智能终端的内容将更加丰富,它将为新业务的发展提供一个高效的平台,可以更快速、更有深度地开发各种更加个性化、优质的多媒体数据服务。 2.低功耗和高能电池 随着手机集成的新业务越来越多,手机电池必须能够在合理的时间内支撑这些业务。提高手机使用时间的方法有两种:一是提高手机的节电技术,二是直接增大电池容量。目前,燃料电池被业界看作未来手机电池的发展方向,这种使用新型材料的手机电池容量将达到现在的10-100倍。按照这种发展形势,估计到2006年左右,采用燃料电池的手机将会开始推广商用,这无疑又将给移动增值业务的发展提供有力的支持。 手机电池的好坏直接关系着用户使用手机的感受,而这也一直是消费者投诉的重点,手机电池不仅容量要增大质量也要提高,这样才能使用户充分体验到现代通信科技所带来的方便和快乐。本课题的研究任务是开发一套基于iOS平台的淘宝客户端。为了完成课题研究,首先学习了ios平台的编程语言-Objective-C,然后深入学习了ios平台与框架与框架本文将对软件UI的设计、页面之间的功能交互、数据请求与下载以及数据解析进行详细论述。同时详细分析在各个功能模块中的创新点。在本课题研究中,本人首先对iOS平台技术和相关设计模式进行了介绍,然后再此基础上分析研究了淘宝客户端软件的需求和基本功能,并对其进行设计实现。应用软件的设计基于MVC模型,将视图部分、模型部分和控制器部分划分开来,减少了模块之间的稱合度,利于开发和维护。从功能上划分,该应用软件的设计分为两个分区,分别是商品分类分区和淘宝登录分区。商品分类分区实现了对所有商品的展示。淘宝登录模块主要实现的是淘宝登录或注册的功能。该项目实现对内存的合理利用和管理,符合移动终端软件开发的要求。同时,该项目实现了数据下载和文件解析结束,并且对iOS平台的手势与触摸事件进行了深入的研究。第一章:ios相关技术的介绍1.1 开发环境 1.1.1 硬件环境 本次设计,程序开发的硬件环境是苹果公司生产的MacBook Pro。 1.1.2 软件环境 1)基本简介 Xcode是苹果公司向开发人员提供的集成开发环境,用于开发Mac OS X,iOS的应用程序。其运行于苹果公司的Mac操作系统下。不管你用C、C+、Objective-C或Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度极快。每次操作都很快速和轻松。 2) 编译器 Xcode 的核心部分是苹果电脑公司下一代业界标准的 gcc编译器。新的编译器利用许多先进的最优化技术帮你从现存编码中获得更多性能。从超级计算世界借鉴来的自动向量化(Auto-vectorization)技术可以帮助你释放每台 Intel 系统中速度引擎的能量,而不需要编写向量化编码。其他的最优化工具则支持反馈定向的最优化,以及隐藏模块分析。 3) 应用开发 Xcode 允许你开发基于iOS的iPad、iPhone、iPod Touch 设备应用程序,只要你有Mac OS X Snow Leopard 10.6.2 以上版本 Mac OS 操作系统,便可安装ios sdk,如果你有iOS设备,便可让Xcode把应用程序部署到你的iOS设备上,不然,你还可以使用iPhone仿真器进行调试。Xcode提供了友好而方便的应用程序开发环境,这样你就可以开发出好的iOS应用程序了1.2 Xcode的使用 Xcode的使用时本次毕业设计的重点,下面通过一个简单的程序介绍一下:首先打开Xcode软件,点击界面上方的Creat a new project ,可以直接开始创建项目,如图1.1。 图1.1 Xcode开始界面之后选择新项目模板,为方便生成项目,Xcode默认提供了集中模板。我们选择Empty Application。填写项目名称(支持中英文):如图1.2。 图1.2 在Xcode上新建项目在xcode中输入如下代码:UIButton *button=UIButton allocinitWithFrame:CGRectMake(100, 100, 100, 100); button.backgroundColor=UIColor redColor; self.window addSubview:button;运行后得到模拟器中显示的效果图,如图1.3。 1.3 运行模拟器后的效果图1.3 开发语言1.3.1 开发语言简介 Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。1.3.2 语言特点 Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。1.3.3 与c+的区别Objective-C不支持多继承,Objective-C采用协议,c+采用虚函数的形式来定义接口等。1.3.4 内存管理机制 很多高级语言都有垃圾回收机制,但是ios却没有垃圾回收机制,虽然ios提供自动管理内存,但有些情况下,自动管理内存不见得能缺德有效的效果,因此这对开发者有更高的要求,锁开发的程序应该能够及时有效的进行内存释放和再利用。所谓内存管理,是指软件或程序运行时对内存资源的分配和使用的技术。 由于移动终端其自身的硬件条件有限,内存容量一般很小,因此开发程序是必须考虑内存资源的使用情况。本文设计中的程序以图片浏览为主,数据量较大,因而,考虑内存管理的问题显得尤为重要。因此以下将详细分析ios的内存管理机制。 所有权是ios内存管理里的核心思想,对象的所有者负责在使完对象后进行释放。一个对象可以有多个所有者,当它没有所有者时将被设置为取消分配。 所对权通过alloc、new或者copy的方式建立,即为新创建的对象分配内存。之后通过调用retain或通过Cocoa函数來分配和复制对象的所打权。为了管理对象的所有权,Foundation框架引用计数的机制来解决这一难题。 引川计数具体来说就是跟踪并记录对象的引用次数,创建对象时,将它的引川次数设为1,每一次必须保持该对象时,就发送一条retain消息,使其引用次数加1。不需要对象时,可以通过发送release消息足对象的引用次数减1. 当对象的引用次数达到0时,系统知道不需要这个对象,向对象发送一条delloc消息释放该对象占用的内存。 每个对象都有retainCount属性,该属性用于保存对象被引用的次数。,创建一个新对象(通过alloc、copy、new 方式)并为其分配内存空间时,retainCount 为1,当对象的作用域结束时必须rlease该对象。Retain关键字用于保持一个对象,对象收到retain消息时,需要将retainCount加1。release 释放引用的对象,向对象发送release消息,retainCount减1。由此可见,retainCount 记录了系统对对象的引用情况,在对象作用域结束吋必须使对应的retainCount 设置为0,否则会造成内内存未释放或过度释放,未释放的内存将不能被其他对象使用,从而选成内存泄露。、当内存泄露过度,造成程序没有足够的足够的内存时,系统崩溃。过度释放则会导致对象不该销毁却被销毁了,这样,当再次使用该对象时,内存被释放,得到一个无效值,从而造成系统崩溃。因此内存管理对于整个ios程序设计至关重要。如图1.4实例。 图1.4 ios内存管理框图1)类1使用alloc或是new的方法创让了一个对象Obj,此时在堆内存中为该 对象分配一段段内存空1,同时 retainCount为1。 2)在类2 中 retain 了 Obj 对象,retainCount 加 1,其值为 2。3)类3中,向对象Obj发送copy的消息,系统在堆内存中重新分配一块内存2 存储Obj的拷贝,同吋此段内存的引用值为1。 4)类1释放Obj,内存1的引用计数减1。5)类2中向Obj发送release消息,内存1的引用计数再减1,变为0。说明对 该对象的引用全部完成,此时系统调用dealloc方法,释放该段内存。6)类3中向Obj的拷贝发送release消息,内存2的引用计数建议,变为0,同步骤5,系统调用dealloc方法释放内存2。该图同时也验证了一个对象可以有一个或者多个所有者,当全部的所有者都release掉该对象时,对象才被销毁。1.4 MVC设计模式MVC设计模式,即模型(Model)视图(view)-控制器(Controller),它在现今软件开发中得到广泛的应用的一种软件架构模式,起目的是为了实现动态的程式设计,以便于后续对程序的修改及修改优化,它将各部分分开,降低了应用之间的高耦合度。通过对复杂度的简化,在确保各个基本部分应有的基本功能的同时,还使得程序结构更加直观,图1.5展示了MVC设计模式三个部分之间的关系。控制器 图1.5 MVC设计模式模拟图模型(Model):用于提供数掘和业务规则的相关处现。在MVC的设计模式中,它是对数据处理最多的一个部分,其业务模式的设计足MVC的核心。它的主要任务足将数掘提取出来后经过加工封装,以屮立和便于处理的数据格式提供给其他部分,使得其他部分能够方便快捷的进行操作。由于将对数据的操作集中在一个部件中,其他部件只需要调川投型层提供的接便可使用数据,这样就大大减少了代码的重复性。视图(View):是用户能够后看到并与之交互的界面。对于Web应有程序来说,视图界面一般有HTML构成,对于ios来讲,是指用于呈现显示内容的视图容器。在ios系统中格局显示内容的不同,有多重类型的显示容器。比如所有视图容器的基类UIView,滚动视图UIScrollerView,该视图中可以添加子视图,形成视图树状结构,这一理念在软件设计中常备用到。控制器(Controller):主要用于接收用户的数据输入,并且协调视图和模型来共同完成用户的请求。控制器通过视图层来接收到用户的输入后,本身并不提供对用户的请求和提供数据的响应,而是交给模型层来处理。模型层对数据进行处理得到反馈结果再交给控制器,控制器选择对应的视图层并将数据返回给用户。MVC设计模式是ios平台软件开发常用的设计模式。在iOS平台的MVC设计模式中,有以下三方面要点:1)Model和View永远不能相互通信,只能通过Controller传递;2)Conroller可以直接与Model对话,Model通过Notification和KVO机制与Controller间接通信;3)Controller可以直接与View对话(通过outlet直接操作view),View通过action向Controller报告事件的发生(如用户Touch我了)。Controller是View的直接数据源(一般情况下,数据是controller从Model中取得的)。在本设计中同样采用MVC模式,Model负责数据下载与解析;View部分负责内容的呈现和用户交互;Controller部分负责将Model的数据显示在View中并处理View接收的交互动作。1.5 ios框架 ios提供了很多开发者可以在应用程序里调用的框架。如图1.6。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation、UIKit、和Core Graphics这些框架。根据你为应用程序选择的模版,相关的框架就已经被自动引入了。如果默认加入的框架不能满足你的应用程序的需求,你也可以加入需要的框架。图3 Foundation框架是用Object-C对Core Foundation框架里许多特性的封装。 使用Foundation可以: 创建和管理集合,比如数组和字典 访问存储在应用程序里的图片和其它资源 创建和管理字符串 提交和接收通知 创建日期和时间对象 自动发现IP网络上的设备 操作URL流 执行异步代码 所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。 使用UIKit可以: 构建和管理你的用户界面 捕获触摸和基于移动的事件 呈现文字和web内容 优化你的多任务程序 创建定制的用户界面元素 Core Data , Core Graphics, Core Animation,和OpenGLES框架都是高级的技术。所以这些框架对于你开发应用程序也是很重要的,它们都需要时间去学习和掌Core Data提供对象的管理,使用Core Data,你可以创建模型对象,并管理这些对象。你管理这这些对象间的联系并修改数据。Core Data提供的内建SQLlite技术可以高效的管理数据。 使用Core Data可以: 在库里存储和接收对象 提供基本的undo/redo 自动验证属性值 过滤、分组和优化内存中的数据 用NSFetchedResultsController管理表视图中的结果 支持基于文档的应用程序 高质量的图形对于所有的iOS应用程序都是很重要的。在iOS中最简单且最快捷的创建图形的方式是使用UIKit框架提供的基于预渲染图形的视图和控件,然后让UIKit和iOS完成绘制。但是当你需要创建复杂的图形时,Core Graphics则提供了更底层的库来帮助你。 使用Core Graphics可以: 创建基于路径的绘图 抗锯齿渲染 添加梯度、图片和颜色 Use coordinate-space transformations. 创建、显示和分析PDF文档 UIKit提供建立在Core Animation之上的动画。如果你需要比UIKit能力更高级的功能,可以直接使用Core Animation。Core Animation接口包含在Quartz Core框架里。使用Core Animation可以创建嵌套的对象,并且可以对它们操作、旋转、缩放和转换。使用Core animation,你可以创建动态的用户界面而不用使用更底层的图形API,如OpenGL ES。 使用Core Animation可以: 创建定制动画 添加定时函数和图形 支持帧动画 OpenGL ES支持2D和3D绘图,Apple的OpenGL ES实现通过硬件提供了高速的全屏游戏式的应用程序。 使用OpenGL ES可以: 创建2D和3D图形 创建更复杂的图形,比如数据虚拟化、模拟飞行,或者视频游戏 访问底层图形设备 图1.6 ios框架图层第二章 程序的模块划分 运行程序可以直观的看到程序的主界面的上方有一个分为两段的UISegmentedControl ,在此控件两边有各有一个控件。这些对应程序的分类,热门频道,精品展示,淘。如图2.1。 图 2.1 程序界面效果图而对于分类分区,其又分为个性男装,时尚女鞋等多个分类,如图2.2。 图2.2 分类分区截图点击分类分区中的各个小分类,出现该分类下得相关图片如图2.3。 图2.3 数码配件小分类的界面截图点击图片,则页面跳转至UISegmentedControl所属下的热门频道或精品展示,网络加载出该分类下的上商品展示。如图2.4。 图2.4 热门频道经过网络加载后的截图对于淘这个分区,主要有用户淘宝登录,软件更新等。如图2.5。 图2.5淘宝登陆分区界面截图 图2.6 淘宝登录界面截图点击登录到淘宝 ,出现如图2.6。供用户登录淘宝。 第三章 ios淘宝客户端分析3.1 客户端的需求分析移动客户端开发的目的是方便用户网上购物,不再受时间和地点等客观因素地点限制。鉴于移动设备的硬件的特点,其开发过程与PC机相比有一定的区别。下面对iOS移动平台上的杂志阅读器性能和功能的需求进行分析。3.1.1 对功能的规定性能方面,软件不仅要具备各项基本功能,作为一款iOS的应用,软件设计与实现上还应注重用户体验效果。1) 功能的完整性;客户端的功能应该是完整的,这是对软件的基本要求。 2)系统的可扩展性;随着时间的推移和杂志事业的发展,线下杂志无论是在种类还是数量上都会有一定的变动。因此,在开发过程中应该考虑这方面的问题,并为系统保留扩展性。 3)运行的流畅性:软件在运行中应当流畅,比如当遇到下载等情况需要用户等待时,必须让用户知晓。4)良好的用户体验;这一原则也是iphone操作系统一直以来不断追求的,软件应该为用户提供良好的用户体验,页面的设计也要科学合理,符合用户的行为方式。3.1.2 对性能的规定 从功能需求上分析,该软件应兼顾系统功能和用户功能两方面。功能需求主要包括一下几点:1)内存的优化管理;关于内存管理已经在2.3节中做了详细分析,其目的也是为了引起读者重视,内存管理是iOS平台开发中首要考虑的因素。2)通信;服务器和客户端之间需要通信,比如向服务器申请数据。3)错误处理;可以及时捕捉异常状态并作出处理,保证程序运行时不会异常退出。3.2 各分区的功能分析根掘功能不同,在设计上分为商品分类分区和淘宝登陆分区两部分,本节主要介绍这两个分区的功能设计。3.2.1商品分类分区商品分类分区的主要功能是列出了商品的分类,主要有团购信息、个性男装、潮流女装、数码配件、精品男鞋、时尚女鞋、箱包配件、运动健身、美容护肤等分类。当点击这些分类中的图片时,会自动获取网络数据,在新跳转的热门频道或精品展示页面显示当前分类下的商品,原来页面隐藏。3.2.2淘宝登录分区淘宝登陆分区主要用于淘宝用户的登陆或注册,登陆成功后进入淘宝网页,原来页面隐藏。3.3 客户端的数据分析3.3.1 网络数据请求方式的设计 ios有几种请求比如最常用的post,get等。get的参数会在URL地址里看到,假如存在微博用户名和密码会被大家看到这就非常不安全。这是可以选择post的方式。虽然他们都可以放一些请求参数。请求可能要设置一些参数什么的,以下举个例子是发送图片的。其他一些delete,put请求都是类似的。网上也有一些开源的类库是封装了一些网络请求的。比如asihttp这个类库封装的一些和网络交互的方便的请求。缺点是用别人的类库一旦别人升级改动你也得自己跟着改。3.3.2 JSON数据解析设计和实现 为了能够发挥运算总结的数据运算成果,重设JSON数据运算,来达到JSON关系运算后生成字典或者代码组,就是NSDictionary和NSArray。运算能给出的代码组普遍是来自一整套NSDictionary构成的。3.3.3 JSON数据架构轮廓JSON两种构造的搭建:(1)“代号/数据”组的整合。不同的语言中,它被理解为对象,记录,结构,字典, 哈希表,有键列表,或者关联数组。(2)值的有序列表。即计算机语言中的数组。在(1)号结构来看,运算生成 NSDictionary数组模板,代号和数据都各自代表了数组模板的代号和数据。假设,有代号/数据组JSON串:MyfirstName; Bsstt, MylastName;McLdshlin, email: asdaa 运算之后,得出NSDictionary数组模板。其模板含有3个按钮,都是firstName、 lastName 和 email,各代表了 3 个数都是 Brett、McLaughlin、aaaa。而对于(2)号结构来看,运算生成NSDictionary数组模板,JSON代号都各自代表了数组模板的按键,JSON数组集合的数组各自代表了数组模板的数据。存在于一些深度的数组模板的处境下,末尾造就运算结论是由这些数组模板构建的字典对象。3.3.4 商品分类数据的获取1) 获取商品分类的数据时。先用一个可变数组(NSMutableArray)存储商品分区中九个分类的地址,主要形成码: MyCommon_Singleton.TweburlArray addObject:/m3?p=mm_31846197_4064295_13216326&c=1006;在ios编程中,NSArray是一个静态数组,其不可修改数组中的元素,但在很多情况下,要求我们可以对数组元素进行插入,删除等修改,这样,NSMutableArray就应运而生,来满足我们的要求了。表3.3显示了NSMutableArray的常用方法。 表3.1 NSMutableArray的常用方法 再通过JSON解析按队列的解析出所要请求的图片。主要形成码:NSString*jsonString=self TBKitemsArrayToJSONString:self.dataArray; NSUserDefaults *defaults = NSUserDefaults standardUserDefaults; defaults setValue:jsonString forKey:SERIALIZATION_JSON_STRING; dispatch_async(dispatch_get_main_queue(), if (self.loadingmore) self.loadingmore = NO; self.loadFooterView.showActivityIndicator = NO; self.loadFooterView setHidden:YES; else self.tableref setContentOffset:CGPointMake(0, 0); self.tableref reloadData; ); ); dispatch_release(downloadQueue);2) 获取商品的具体信息的数据时,先将网络数据存入字典,通过键值(Key-Value)查找,然后通过JSON解析。主要形成码:NSMutableArray* stringsArray = inputJSONString objectFromJSONString; for (int i = 0 ; istringsArray count; i+) CuzyTBKItem*tbkItem = CuzyTBKItem alloc init autorelease; NSString* contentDictionaryString = stringsArray objectAtIndex:i; NSDictionary*contentDictionary = contentDictionaryString objectFromJSONString; tbkItem.itemName = contentDictionary objectForKey:itemName; tbkItem.tradingVolumeInThirtyDays = contentDictionary valueForKey:tradingVolumeInThirtyDays; tbkItem.itemPrice = contentDictionary valueForKey:itemPrice; tbkImotionPrice = contentDictionary valueForKey:promotion_price; tbkItem.itemClickURLString = contentDictionary valueForKey:itemClickURLString; tbkItem.itemImageURLString = contentDictionary valueForKey:itemImageURLString; TBKItemArray addObject:tbkItem; 在ios中字典使用Key-Value的形式存储数据,字典中的对象存储没有顺序,使用Key来表示每个对象。Cocoa框架中的字典有不可变字典(NSDictionary)和可变字典(NSMutableDictionary),NSMutableDictionary是NSDictionary的子类,所以继承了NSDictionary的方法。NSMutableDictionary dictionaryWithCapacity:10 :创建一个可变词典初始指定它的长度为10.,动态的添加数据如果超过10这个词典长度会自动增加,所以不用担心数组越界。NSMutableDictionaryinitWithCapacity:10:只是初始化一个词典的长度为10。dictionary setObject: 雨松MOMO forKey: name :向可变的词典动态的添加数据,这里的key是name值是雨松MOMO。如果词典中存在这个KEY的数据则直接替换这个KEY的值。dictionary removeAllObjects. :删除掉词典中的所有数据。dictionary removeObjectForKey. :删除掉词典中指定KEY的数据。字典类的存在就是为了解决在大量数据中查找方便,因为它是通过key直接找到value所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮你的程序提速噢。3.4数据的传输在本次设计中,数据的传输是在推送视图是连带所需数据一起推送,主

温馨提示

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

评论

0/150

提交评论