1、 目 录 摘 要 .I ABSTRACT . II 第一章 引言 . 1 一、课题的目的和意义 . 1 二、移动互联网时代 . 1 三、主要设计内容 . 2 第二章 iOS、语言、环境以及所用技术介绍 . 3 一、 iOS 简介 . 3 二、操作界面 . 3 三、 Objective-C 语言 . 4 四、 Xcode 开发环境 . 4 五、 JSON 解析 . 5 六、 XML 文件解析 . 5 七、 SQLite 数据库 . 6 第三章 需求分析 . 8 一、设计背景 . 8 二、总体设计 . 8 第四章 详细设计与实现 . 10 一、应用的流程图 . 10 二、首页展示设计 . 10 三
2、、用户星宿选择的模块 . 12 四、用户星宿的查询结果模块 . 13 五、其他星宿的模块 . 14 六、星宿配对模块 . 16 七、电子书模块 . 19 八、结果页面的微博分享模块 . 20 第五章 测试 . 23 一、测试项目 . 23 (一)测试星宿查询模块 . 23 (二)测试星宿查询结果模块 . 23 (三)测试星宿配对模块 . 23 (四)测试电子书模块 . 23 (五)测试分享模块 . 23 二、测试汇总 . 24 致 谢 . 25 参考文献 . 26 附 录 . 27 一、 UIPickView 的日期显示 操作 . 27 二、查询结果的页面的排版 . 29 三、电子书的核心排版
3、算法 . 31 I 摘 要 随着近几年智能手机的爆炸式增长,手机已经成为我们生活中不可或缺的一部分,并且已经逐渐改变了人们的生活方式。朋友同学聚会,可以用大众点评网搜索附近 500 米内最好的餐馆;在坐公交、地铁的过程中,各种各样的手机游戏也成了您打发时间的的最佳方式。 本文主 要对在 iOS 设备上实现应用开发进行详细的分析介绍。本项目以中国古代星宿文化为背景,配以星宿的介绍、用户星宿的查询、星宿配对功能。用户输入自己的农历或者公历生日信息,就能查看用户自己所属的星宿信息,也能选择双方的星宿查看配对的信息。并提供星宿传说故事的电子书供用户阅读,集成第三方微博功能让用户分享本应用。 关键词:智
4、能手机、 iOS、星宿、电子书。 II ABSTRACT In recent years, with the rapid growth of smart phones,the mobile phone has become an indispensable part of our lives,and it is changing our lives. While friends or classmates gathering,we can use the public comment network search the best restaurant within 500 meters; W
5、hile on the bus and subway, all kinds of mobile phone games has become the best way to pass the time. This article will concentrate on the development of the iOS device application to have detailed analysis and introductions. As the background with constellation which is the culture of ancient China
6、,it include the introduction of constellation, users constellation qury and constellation match. Users input their lunar or Gregorian calendar birthday information, they can view their own information which belongs to the constellation .They also can select their both constellation information to vi
7、ew the result of their constellation match.Also it provide the constellation legends eBook for users to read.The third-part microblog can be used to share this application. Keywords: Smartphone、 iOS、 constellation、 e-book reader. 1 第一章 引言 近几年,随着使用智能手机的人数的迅猛增长,作为当今最成熟的智能手机系统之一的 iOS 系统越来越受到人们的青睐。而针对 i
8、OS 系统的移动应用的开发也成为近来最热门的行业。 一、课题的目的和意义 在当今移动互联网迅猛发展的时代,智能设备终端 手机,平板电脑成为人们生活中不可或缺的一部分。作为当今最酷和最受欢迎的苹果 iOS 平台产品成为用户的首选产品,它有着庞大的用户群体和忠诚的粉丝数目。而为 iOS 设备开发应用也 成为当今非常热门的行业。了解 iOS 开发流程,学会使用 Xcode 编程工具 ,掌握 iOS 开发语言 Objective-C,学习 iOS 应用功能实现有利于我们掌握这门技术,为将来的工作打下坚实的基础 1。 二十八星宿,作为中国的传统文化 , 又名 二十八舍 或二十八星,它把南中天的 恒星 分
9、为二十八群,且其沿黄道或天球 赤道(地球赤道延伸到天上)所分布的一圈 星宿 。它分为四组,又称为 四象 、 四兽 、 四维 、 四方神 ,每组各有七个星宿,其起源至今尚不完全清楚。 星宿作为古代天文观测和命理玄学的研究载体充满了神秘的色彩。本次设计的应用围绕对星宿的认识和介绍,加上一些趣味性的测试和配对,来为用户展现其魅力! 通过此次在 iOS 平台上的开发过程中,除了实现基本的功能外!对电子书的实现和其算法的研究有更深的认识,同时探索公历和农历日期的算法并实现。另外尽可能多的去实现 iOS 平台提供的功能。为个人在该领域的发展打下坚实的基础。 同时在结果页面提供腾讯或者新浪微博的分享功能,给
10、自己的作品一个向大家推广的机会。在查询数据和存取数据上的算法上做更深的研究,提高应用的响应速度,做更好的优化!同时也能提升自身不同方面的能力。 二、移动互联网时代 根据中国互联网络信息中心( CNNIC)发布的第 31 次中国互联网络发展状况统计报告称,截止 2012 年 12 月底,手机网民数量已达到 4.2 亿,网民上网设备上手机上网设备数量已经超过传统 PC,移动互联网时代已经全面到来。 那移动互联网究竟给我们带来了什么 ?环顾一下四周,我们会不难发现,无2 论是在公交 车还是在地铁,总有不少人低着头沉默不语,他们紧盯着自己手中的手机或平板,手中也没闲着,在不停的比划,凑近一看,他们要么
11、在玩游戏,要么在聊 QQ,要么在刷微博,要么在逛一些社交网站。 我们会发现,一旦有一点空闲的时间,我们就会拿出我们的手机来玩。蹲厕所时,隔壁会传来小鸟撞击石头而发出的叫声;在电梯中,总会有朋友拿出手机或 iPad 登陆自己的某个客户端。 当我们通过登录自己的 LBS 客户端,在某些地方进行签到的时候,你会拿到你想要的 凭证 ,通过这个 凭证 你会享受打折优惠 ;你也会看到有些疯狂的朋友为了一个 凭证 不择手段的采用虚 假签到 ;这都是现实的生活,这就是移动互联网给人们生活带来的变革,通过智能终端上网,你不在被拘束在电脑前,只要身边有网络信号即可。不过这其中似乎减少了人与人之间的交流,更多的是增
12、加了人机之间的交互,把一些的交流也带入了虚拟的空间中。 如今的签到已经成为了现在移动互联网玩家的一个嗜好,通过签到你可以分享自己当前的状态,同时还能获得朋友当前的情况,在个人分享的时代中,签到成为了一个助推剂,让大家尽情的享受在彼此熟知的虚拟环境中。 三、主要设计内容 ( 1)用户生日选择模块:让用户选择生日,使用 iOS 特有的滚轮控件, 做农历和公历日期的互转,以及日期的动态刷新。 ( 2)用户星宿的结果页面:通过用户选择的生日日期,如果不是农历日期,则转换为农历日期,然后根据农历的日期,通过星宿的算法,得到用户的星宿。和该星宿的详细信息,以及该星宿的性格特点。 ( 3)星宿配对模块:在此
13、页面中能选择自己的星宿和对方的星宿进行配对。通过读取存储在本地的相关信息,用 webView 的形式显示出结果。 ( 4)其他星宿模块:在这里能看全部的 28 星宿,通过选择不同的星宿图标能查看相应的星宿的详细信息和性格特点。 ( 5)分享模块:这里提供你查询后的结果的分 享,有腾讯微博和新浪微博的分享功能,能把你的部分结果信息上传到你的微博中。 ( 6)电子书:这里提供一份星宿传说的电子书,在这本书中可以了解到星宿的的起源,传说故事等一些详细的信息。并提供电子书基本的标签保存、跳转、日夜间模式等基本的功能。 3 第二章 iOS、语言、环境以及所用技术介绍 iOS 平台使用了构建 Mac OS
14、 X 时积累的知识, iOS 平台的许多工具和技术也源自 Mac OS X 平台。尽管它和 Mac OS X 很类似,但是没有 Mac OS X 开发经验也可以开发 iOS 程序。 iOS SDK 提供了创建 iOS 应 用程序所需要的环境和工具。利用 iOS SDK 开发应用时所用的编程语言是 Objective-C。下面具体介绍一下 iOS、语言、环境以及其他所用技术。 一、 iOS 简介 iOS 最初是设计在 iPhone 上的操作系统, 苹果公司于 2007 年 1 月 9 日的Macworld 大会上公布 了 这个系统 ,并命名为 iPhone OS,但随着此系统在 iPod tou
15、ch、 iPad 以及 Apple TV 等苹果产品上 的广泛应用, 苹果公司 于 2010 年 6 月 7日 WWDC 大会上 将其改名为 iOS。 据 Canalys 的数据显示 , 截止 到 2012 年 12月 , iOS 占据了全球智能手机系统市场份额的 21.0%, 在美国的市场占有率更是达到了 43%。随着 Andriod 开源操作系统的异军突起以及 Windows Phone 的发力,iOS 市场份额正被一点点的蚕食,但是 iOS 设备的利润率高的惊人,以智能手机为例, iPhone 的利润额占到整个智能手机利润额的 80%,受益于此,苹果的市值也达到了 5000 亿美元 2。
16、 二、操作界面 iOS 操作采用的是多点触控 直接操作 , 控制方法包括滑动、轻触 屏幕和图标 及按键。 操作有: 滑动、轻按、 缩小 及 放大。此外, iOS 移动设备中还内置了加速器,使得旋转 iOS 设备时,界面也可以得到旋转,这也使得 iPhone 等便携设备 更便于使用 。自 3GS 开始, iPhone 装备有陀螺仪,这使得 iPhone 有了重力感应,游戏效果更加的突出。 屏幕的下方 是 home键, 点按回到主界面。 底部是 dock, 可安放 四个使用者最经常使用的程序的图标。屏幕 最 上方 是 状态栏 , 显示一些有关资讯 : 如时间、电池电量和讯号强度等。其余的屏幕用于显
17、示当前的应用程序。 启动程序,只需点按该程序的图标,点 按屏幕下方的 home 键 即退出应用程序。 在iPhone 3.0 及后续版本中, 及时应用程序退出, 当第三方软件收到了 新的讯息时 ,苹果 公司的服务器将把这些通知推送至 iPhone 或 iPod Touch 上(不管它是4 否正在运行中) 。 三、 Objective-C 语言 Objective-C, 也通常被写作 ObjC,是一种扩充 C的面向对象 编程语言 ,主要用于 Mac OS X 和 GNUstep 这两个使用 OpenStep 标准的系统 4。 Objective-C 是非常实际的语言。它是用一个用 C 写成、很小
18、的运行库,只会令应用程序的大小增加很小,和大部分 OO系统使用极大的 VM执行时间会取代了整个系统的运作相反。 ObjC 写成的程序通常不会比其原始 码大很多。而其函式库 (通常没附在软件发行本 )亦和 Smalltalk 系统要使用极大的内存来开启一个窗口的情况相反。 Objective-C 最 开始 并不支持 垃圾回收,因为垃圾回收 有漫长的 “死亡时间 ”, 会导致 整个系统失去功用。 但自 Xcode4.0 开始,支持自动释放,也就是ARC (Automatic Reference Counting)机制 , 不需要用户手动去 Release 每 一个对象 , 编译器会在编译期间自动帮
19、你添加那些以前你经常写的 NSObject release5。 Objective-C 和 C+有很多 不同之处, Objective-C 不 支持运算符重载,也只允许对象单继承,但其引入的 Categories 和 protocols可以提供很多多重继承的好处 。 很多常见的编译时 的 性能优化方法都不能应用于 Obj-C,比如内联函数 3。 OC 语言随便苹果的崛起,在世界编程语言排行榜中的名次也是一路飙升,从当初的 50 多名一路窜到现在的第 3 名,并且稳稳的占据了前 3 的席位。 OC的崛起也是由于其是唯一可以为 iPhone 和 iPad 设计程序的语言。 四、 Xcode 开发环
20、境 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 应用程序了 6。 Xcode 支持多种语言,如: C、 C+、
21、Objective-C、 Java。 另外, Xcode 的编译速度 也 极快。 5 Xcode还具有 自由撤消 的强大功能: Xcode 4 具有 虚拟模型和设计功能 ,这可以让你更轻松的开发和维护应用程序。 五、 JSON 解析 JSON( Javascript Object Notation)是一种轻量级的,以文字为基础,且易于让人阅读。尽管 JSON 是在 Javascript 的一个子集,但 JSON 是独立于语言的 文本格式 ,并且采用了类似于 C 语言 家族的一些习惯。 JSON 格式是 1999 年 JavaScript Programming Language, Standa
22、rd ECMA-262 3rd Edition的子集合,所以可以在 JavaScript 以 eval()函式( javascript 通过 eval()调用解释器)读入。不过这并不代表 JSON 无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有 JSON 函式库 7。 JSON 用于描述数据结构,有以下形式 存在 : 1.对象 (object):一个对象以 “”开始,并以 “”结束。一个对象包含一系列非排序的名称值对,每个名称值对之间使用 “, ”分割。 2.名称值对( collection):名称和值之间使用 “: ”隔开,一般的形式是: name:value一个名称是一个字符串
23、;一个值可以是一个字符串,一个数值一个对象,一个布尔值,一个有序列表,或者一个 null值。 3.值的有序列表( Array):一个或者多个值用 “, ”分割后,使用 “”, “”括起来就形成了这样的列表,形如: collection, collection 4.字符串:以 “ “括起来的一串字符。 5.数值:一系列 0-9 的数字组合,可以为负数或者小数。还可以用 “e”或者 “E”表示为指数形式。 6.布尔值:表示为 true 或者 false。 六、 XML 文件解析 可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标
24、记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言 8。 XML 是 标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。 XML 提供统一的方法来描述和交换独立于 应用程序 或供应商的结构化数据。 XML与 Access,Oracle和 SQL Server等数据库不同,数据库提供了更强有力的数据存储 和分析能力,例如:数据索引、排序、查找、相关一致性等, XML仅6 仅是存储数据。事实上 XML与其他数据表现形式最大的不同是: 它 极其简单。这是一个看上去有点琐细的优点,但正是这点使 XML与众不同。 XML与 HTML的设计区别是: XML
25、 被设计为传输和存储数据,其焦点是数据的内容。而 HTML 被设计用来显示数据,其焦点是数据的外观。 HTML 旨在显示信息,而 XML 旨在传输信息。 XML 和 HTML 语法区别: HTML 的标记不是所有的都需要成对出现, XML则要求所有的标记必须成对出现; HTML 标记不区分大小写, XML 则大小敏感 ,即区分大小写。 XML去掉了之前令许多开发人员头疼的 SGML的随意语法。在 XML中,采用了如下的语法 : 1 任何的起始标签都必须有一个结束 标签 。 2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线( /),例如 。
26、 XML解析器会将其翻译成 。 3 标签必须按合适的顺序进行 嵌套 ,所以结束标签必须按 镜像 顺序匹配起始标签,例如 this is a sample string。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。 4 所有的特性都必须有值。 5 所有的特性都必须在值的周围加上双引号。 七、 SQLite 数据库 iOS 包含了 SQLite 数据库,它 是 一个简单的 、 轻量级的数据库,并宣布是“世界上部署的最广泛的数据库引擎”。目前 很多嵌入式产品 都 使用 SQLite,SQLite 占用资源非常的低 , 在嵌入式设备中,只需要几
27、百 K 的内存就够了。 它支持 Windows/Linux/Unix 等主流的操作系统, 比起 Mysql、 PostgreSQL 这两款世界著名的开源数据库管理系统,它的处理速度都比他们快 13。 下面以具体实例的形式讲述创建 SQLite 的方法: 1.创建数据库命令: sqlite3 shopping.db 若 shopping.db 文件已存在,则打开数据库,若不存在,则创建它。 2.创建表格: create table shopping (key integer primary key,item text,price double,groupid 7 integer,dateadded date); 3.插入数据: insert into “shppinglist” (item,price,groupid,dateadded) values (“iPhone 3G”, “199”, 1, DATETIME(NOW) 4.查询: select * from shoppinglist