ios简历项目怎么写(精选多篇)

时间:2021-01-11 08:40:08下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《ios简历项目怎么写》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《ios简历项目怎么写》。

第一篇:ios简历项目怎么写

如果你是HR,若需要招聘一个ios开发工程师,有50位应届生投递简历,他们专业技能一致,项目经验也大同小异,那你该怎么选择面试者?以下是写写帮文库小编整理的ios简历项目怎么写,以供大家参考。

ios简历项目怎么写:

项目经历

2011/05 –2011/10

IOS项目图片处理、分享、点评程序

负责项目的整体架构设计及服务器端接口的开发

负责图片处理滤镜的设计实现、图片缩放、裁剪、旋转等效果的实现 

负责系统数据加密算法的实现

2010/08 –2011/04 基于IOS的“双扣扑克”游戏客户端

负责扑克游戏的整体UI的设计和用户接口逻辑的实现  负责服务器端游戏逻辑及接口的实现

负责游戏数据传输协议的设计及加密解密算法实现

2009/11 –2010/07 ANDROID项目

基于Google Android 1.0平台的样机开发

参与Calling模块的开发并负责RIL底层接口的改进设计 2007/11 –2009/10 XPIXL项目(ZN5)

基于摩托罗拉LJ6.3平台的高端手机  参与Messaging模块的设计开发

项目期间的工作表现获得Moto Bravo!Award

2007/05 –2007/10 YONGXING项目

基于摩托罗拉LJ7.2平台的中高端手机 

参与Messaging模块的改进设计

2007/01 – 2007/05 DRAGONFLY项目

基于TI的Locosto平台的低端手机

经历了从产品FDS开始的完整开发流程,参与了短信模块的SRS、SDS、SIS的编写,短信模块的改进

第二篇:ios简历自我评价

ios简历自我评价

ios简历自我评价1

英语本科毕业,获得学士学位,英语听说能力良好,稳重认真,具有教师资格证,五年英语教师经验并参与一系列英语教材的编辑工作。责任心强,具有团队精神。乐于接受挑战,能够适应在压力下工作。

待人真诚、自信乐观、谦虚稳重、做事认真负责,勇于挑战自我;有较强的组织能力,有较好的团队协作精神,具备较强的`学习能力,相信自己能很快融入单位,为其创造价值。我一直在不断提升自己努力成为“多元化复合型人才”,对于未来我满怀信心,我认为确立明确目标对于个人发展非常重要,相信“适合”永远是最好的!

极强的自学能力,高度的责任心,很强的可塑性,热爱工作,热爱生活,诚实守信,与人为善,孝顺父母,关心他人。不以物喜,不以己悲。在遇到挫折时,坚信:只要有1%的希望,就要付出100%的努力。真诚地希望我的加入为贵单位带来可观的效益。

ios简历自我评价2

本人性格温和但不缺少主见,为人沉稳也不失创意,对任何事情都非常有耐心,有较好的沟通能力及文化素养;

对编程有着浓厚的.兴趣,有较好的心理素质和抗压能力,对工作积极努力,吃苦耐劳。喜欢接受新事物,求知欲强,学习能力较强;

在工作中,有较强的团体合作意识,总是与同事融洽相处。积极向上、充满热情的我希望能得到您的认可。

ios简历自我评价3

1、适应能力强,能够快速适应新环境;

2、工作认真,能够按时完成项目开发;

3、学习能力强,对新技术有强烈的追求;

4、乐于与同事交流沟通,能够快速解决项目中遇到的'问题。

5、能够快速解决项目中遇到的问题;

ios简历自我评价4

3年iOS开发经验,独立承担过多款产品研发,多款App已上线,熟练掌握C、OC编程语言,UI系统控件及自定义控件,熟练使用Quartz2D、Core Animation、触摸事件处理、物理仿真等技术,熟练掌握常用的设计模式;

熟练掌握JSON、XML解析,FMDB、CoreData对SQLite数据库进行操作,TCP、UDP网络传输协议,多线程,熟练掌握文件操作,常见本地数据持久化方法,熟悉苹果APNS推送机制,掌握极光推送的`实现以及本地推送的实现;

ios简历自我评价5

熟练掌握C、Object—C编程语言,熟练掌握IOS开发项目开发流程,熟悉项目模块的开发,熟练掌握MVC、代理、单例、KVO等设计模式,有扎实的开发能力,具备独立开发经验,善于学习新知识;

有较强的时间观念以及较强的逻辑分析和独立解决问题的能力,良好的.代码编程习惯,善于封装常用工具类,适应能力强,能够快速的学习并使用新知识;

第三篇:ios项目总结怎么写

ios项目总结怎么写

引导语:写总结,必须实事求是,事实要准确,不能报喜不报优,不要夸大其词。以下是小编搜集整理的ios项目总结怎么写,欢迎大家阅读!

篇一:ios项目总结范文

据说,今年是高校扩招以来,大学毕业生最多的一年,将超700万,这么多大学生即将走入工作岗位。因此被人们戏称为史上XX“最难就业年”。

我在今年7月份也即将拿到沉甸甸的大学毕业证书,与同班同学不同的是,我在毕业之前,就参加了无限互联学习iOS开发,因为通过相关资料,我了解到现在的没有经验和技能的大学生是很难找到一份满意的工作的,所以我期望通过参加技能培训来提升自己的技能。经过将近4个月的学习,现在我将自己学习经验,及我为什么会选择iOS培训学习iOS开发的原因分享给大家,希望对各位能有所帮助: 我之前从事的是质量检验的工作,工资很低,而且还没有什么技术含量。想要跳槽,也很难找到满意的工作。

这让我很苦闷,于是想要进修,iOS又是当下热门的一个行业,所以就选择了iOS。我在北京的几家培训机构都进行了试听,最终选择了无限互联3G学院。之所以选择无限互联是因为无限互联无论在课程的安排,师资力量,还是就业这方面都是其他的培训机构不能比的。

由于我并不是计算机专业毕业的,所以起初学起来有点困难。但是老师细致的授课方法和负责认真的授课态度使我建立信心。我相信只要我把老师课上教授的内容弄懂、弄透,我就不会被落下。我就开始一步一步跟着老师的脚步走。每天回家都要复习、消化这一天的内容,并加以练习。所以我的基础知识学的特别的扎实。基础知识阶段是一个量的积累,量积累到一定的程度才会有质的飞跃。正因为我在基础知识阶段这种稳扎稳打的学法,才使我在最后一个月的项目实践中有一个质的飞跃,能力上了一个台阶。

培训结束之后,就开始找工作。因为从未踏入过这个行业,不知道如何面试,有点担心自己是否能找到工作。但在无限互联就业老师的细心指导下,我逐渐建立了信心。而且在面试中遇到的问题,就业老师也不厌其烦的一一进行解答。我真心感谢无限互联就业老师,如果没有他们的帮助,我也不会找到这份让我非常满意的工作。

4个月的培训证明了我选择的道路是正确的,在这里还认识了很多喜爱开发的朋友,我们在这里一起学习、生活,建立了很深的友谊。感谢无限互联3G学院为我们提供了这样一个良好的环境,最后祝福无限互联越办越好,祝各位老师工作顺利愉快,祝福学弟学妹们前程似锦。

篇二:ios项目总结范文

还是10个小时就变成201X年了,回首这一年的工作,有硕果累累的喜悦,有工作当中的艰辛,也有遇到困难和挫折时的惆怅。在项目可开发的过程中,难题一个接一个的出现,自信心不止一次的受到过打击,虽然自己早就知道,要做到符合公司的要求,做一名合格的程序员,这些是远远不够的。每天我都会不断勉励自己,好好学,以后会好的。在此同时,公司也给了我很多学习的机会,这是我对以后的编程之路又有了信心。在担任公司程序员一职已经有一年多的时间,在这一年时间里,我学到了很多东西。每个人都是在不断的总结中成长,不断的是审视中完善自己。在这一年里自己也是在总结、审视中脚踏实地完成好自己的本职工作,现将这一年的工作总结如下:

严格按照一个程序员应有的素养来约束自己,爱岗敬业,具有强烈的责任岗和事业心,积极主动认真的学习专业知识,工作态度端正,听从公司的安排,积极配合客户完善数字化校园系统。

热爱自己的本职工作,能够正确认真的对待每一项工作,工作投入,热心为大家服务,认真遵守劳动纪律,按时上下班,有效利用工作时间,坚守岗位,需要加班完成工作的要按时加班加点,保证工作能够按时完成。在这一年多的时间里面,我本着把工作做的更好这样一个目标,主动了解公司的开发项目流程,请教他们开发技术上的问题。

1.在这一年多的时间里面,我参与的都是团队合作的项目,无论是自己还是同事,我们都将就团队精神。在信任自己和他人的基础上,思想统一,行动一致,这样的团队一定会攻无不克战无不胜。我们的很多工作是一起完成的,在这个过程中,大家互相提醒和补充,大大提高了工作效率,所有的工作中沟通是最重要的,一定要把信息处理的及时,有效和清晰。

2.每一个项目在开始着手的第一步,一定要和客户把需求沟通清除,只要了解项目的需求,才有可能真正做好一个项目。我们需要向客户提出,要求客户提供所有涉及该项目的资料,每次与客户见面都需要熟悉业务与程序的程序员随时记录需求。

3.工作中,将任务详细化,详细到每个页面,甚至是一个页面中的图片什么时候做好,做好到什么程度,这样把工作进度有计划有方向的定下来,做事很有效率。

4.每天的工作小结真的很重要,这让我们每天都有计划的知道自己干了什么,不是漫无目的的工作,所以我们应该养成,日记、周记、月记、年记的工作习惯。

5.工作并不是一成不变的,也许有一天你要去其他岗位帮忙,所以同事之间的技术要相互学习,也许有一天,公司需要你发挥其他的技能帮忙,所以相互学习也是很重要的。

在公司工作的期间,我也发现了自己离一个符合公司要求的程序员还有很多差距,主要体现在工作技能与工作经验的不够,也是我以后要在工作中不断磨练和提高自己的地方。仔细总结一下,自己在工作中主要有以下方面做的不够好:

1.工作的条理性不够清晰,要分清主次和轻重缓急。

在开发时间很仓促的情况下,事情多了,就一定要有详细而主次分明的计划,哪 需要立即完成,哪些可以缓缓加班完成,在这方面还有很大的优化空间。

2.对流程、业务需求不够熟悉。

在工作中,发现因为流程或业务需求的问题而不知道如何下手的情况有点多,包括错误与缺漏还有当时设计考虑不到位的地方,对于这块的控制力度显然不够,平时总是在开发,但说到底对业务很熟悉才是项目很好完成的前提。

3.缺乏工作经验。

4.学习的知识不够广泛。

一个项目中,涉及的技术往往有很多种,知识多了,就会灵活变通,以后我也会加强这方面的学习。

第四篇:iOS项目自动生成技术文档

iOS项目自动生成技术文档

做项目一般都会要求写技术文档,特别是单干接项目的,客户多少都会要求除了提供code之外,还得提供技术文档,而如果我们手写这类的文档,那工作量不比写code少。一般的开发工具都会提供类似集成的功能,比如Java语言本身就自带javadoc命令,可以从源码中抽取文档,几个配置,几条命令就搞定了。

Xcode工具本身不具备这样的功能,但是我们通过一些插件和工具来达到这个目的。

生成注释

生成文档之前,我们需要给代码中的方法或者变量写上注释,然后再利用工具根据这些规范的注释自动生成文档。所以呢,注释一定要规范统一,但是每次都要手动输入规范化的注释,着实也麻烦,这里需要借助Xcode的开源插件VVDocumenter,规范注释生成器,非常方便!

多行注释直接输入三个斜线 “///” 会自动格式化,如上图所示

单行注释需要输入三个斜线+空格 “/// 注释”。输入两个“//”当然可以正确的被xcode识别为注释,但是在下面生成文档的时候不能被识别为文档注释。

然后再配合 appledoc、doxygen 或者 headdoc,就可以生成技术文档。对于Objective-C来说,目前比较好用的是appledoc 和 doxygen。

工具对比 headerdoc

xcode 自带的文档生成工具、基于命令行的操作、使用方便。但是只能生成以 /*!*/ 的格式的注释。还有一个缺点是每个类文件对应一个注释文件,没有最后汇总导航的index文件。

docxygen

功能强大、三者中支持语言最多的、无headerdoc缺点、基于图形化的操作界面,但是配置较多,可以生成html文档或pdf文档。

appledoc

基于命令行的操作、使用方便、无headerdoc缺点、默认生成的文档风格和苹果的官方文档是一致的,即docset,集成到xcode中就跟苹果的官方文档一模一样,在源码中按住option再单击就可以调出相应方法的帮助。当然也可以生成html文档。

工具使用 appledoc

从github下载源码,在终端里面cd源码文件夹,然后执行shell脚本安装

[plain] view plaincopy

1.2.3.git clone git://github.com/tomaz/appledoc.git cd appledoc

sudo sh install-appledoc.sh

安装过程中如果出错,检查一下Xcode所在的路径中是否存在空格,去掉再试之。成功后在终端cd到项目文件夹里面,输入以下命令生成文档:

[plain] view plaincopy

1.appledoc--output../doc--project-name weibo--project-company “wxhl”--company-id “com.wxhl.weibo”.--output../doc 设置文档输出目录为上级目录下面的doc--project-name weibo 设置项目名为“weibo”--project-company “wxhl” 设置公司名为“wxhl”

--company-id “com.wxhl.weibo” 设置公司id为“com.wxhl.weibo”.当前目录

当该命令完成后,可以看到在上级目录的doc文件夹里面有一个docset-installed.txt的文件,这里面描述了docset文档所在的真正路径,一般都是在~/Library/Developer/Shared/Documentation/DocSets/ 里面,或者看看xcode中的Organizer-Documentation,会发现其中新增了帮助文档。

生成HTML

对于最新版本的appledoc来说,它默认时是生成docset文档并集成到xcode。当需要html文档时,可以加上“--no-create-docset”

[plain] view plaincopy

1.appledoc--no-create-docset--output../doc--project-name weibo--project-company “wxhl”--company-id “com.wxhl.weibo”.当该命令完成后,可以看到在上级目录的doc文件夹里面就 不是docset-installed.txt文件了,而是全部的html文档,直接打开index就行。

doxygen

doxygen支持源码编译安装与dmg安装。去doxygen官网下载最新的dmg,doxygen有图形界面,可通过Launchpad打开。

在step 1中选择好项目的路径。

step 2默认是Wizard->Project页面,在其中 1)在“Project name”中填写项目名。

2)勾选“Sacn recursively”,扫描所有的子文件夹。3)在“Destination directory”中填写好文档的输出目录。这里我填的是“docs”。

点击中间的“Expert”切换Expert->Project页面,在其中

1)将“OUTPUT_LANGUAGE”设为“Chinese”,使用简体中文。

2)勾选“JAVADOC_AUTOBRIEF”,自动将注释的第1段识别为简要描述。“Run”切换Run页面,然后点击“Run doxygen”按钮生成文档。当文档生成完毕后,使用浏览器打开docs/html/index.html——

生成PDF

doxygen默认会为生成pdf做好准备。切换到Wizard->Project,会发现它自动勾选了“LaTex”与“as intermediate format for hyperlinked PDF”。

doxygen本身并不能直接输出pdf文件,而是生成了latex目录,其中有一个 makefile 文件。若系统中装好了pdflatex,可在latex目录中运行“make”命令来生成pdf文件。怎样才能装好pdflatex呢?mac平台可安装MacTeX。打开 http://www.xiexiebang.com/mactex/,下载 MacTeX.pkg(约2.1GB)。MacTeX.pkg下载好后,可双击运行,根据向导来安装。

环境装好之后,当在latex目录中运行“make”命令来生成pdf文件时,你会发现——纯英文文档能顺利生成pdf;而含有中文时,不能顺利生成pdf文件。

对于latex排版,doxygen其实已经做了很多准备,比如——源文件是UTF-8编码,并默认使用了utf8 package。理论上是支持多国语言的。可对于中文来说,还需要加载 CJKutf8 package,并配置好CJK环境。这才能顺利的使用中文。

用文本编辑器打开docxygen生成的latex目录中的refman.tex。找到“begin{document}”这一行,将其修改为 usepackage{CJKutf8} begin{document} begin{CJK}{UTF8}{gbsn}

然后再找到“end{document}”这一行,将其修改为 end{CJK} end{document}

保存并关闭refman.tex。

然后打开终端,使用cd命令进入latex目录,然后执行“make”命令。

执行完毕后后,该目录中会出现“refman.pdf”——

第五篇:ios毕业论文

河南理工大学毕业设计(论文)说明书

摘 要

随着计算机网络通信技术和Internet的飞速发展,基于因特网的手机移动应用已经开始成为一种全新的功能需求,并且越来越受到人们的关注。由于移动应用具有简单性,随时随地性等诸多特点,因此它有着传统计算机所无法比拟的优点。这样一来,手机移动应用的开发工作就显得尤为重要,开发出一个集合手机应用的“商店”极为重要,近年来iphone手机在中的发展趋势日趋上升,iphone手机保密性很强,很多东西都不对外开放,爱限免手机app就是针对iphone手机而开发的一款手机应用,日趋扩大的市场也使得应用于iphone手机的app开发日趋紧迫,可以说爱限免的开发不仅是客户的需求更是市场的需求。

爱限免项目的开发使用了iphone自己研发的开发软件xcode6.0,主要有UIkit框架和Foundation框架组成。爱限免的项目开发,对数据进行展示主要应用列表控制器UIableview,在使用UItableview是对cell的复用是此技术的难点,主要避免在cell复用是出现内存泄露状况而导致的程序崩溃,数据的获取应用了AFHttpNetWork第三方库,对网络数据进行get获取,把获取的数据用数据模型接收,这样有利于降低耦合性,是程序更顺畅。在对数据保存时用到了FMDB第三方数据库,此数据库的底层也是对squlite的封装,是开发者应用起来更顺手简介,提高效率,界面之间的数据传输难点blcok的应用,这点要求开发者对block有比较深刻的理解,以及应用熟练度。关键词:ios,squlite,block,应用,控件

I

河南理工大学毕业设计(论文)说明书

Abstract

With the rapid development of computer network communication technology and the Internet, based on Internet mobile phone application has begun to become a kind of new functional requirements, and people have paid more and more attention.Because of its simplicity, anytime, anywhere, etc., it has the advantages that the traditional computer can't match..In this way, the mobile application development work is particularly important, the development of a collection of mobile application store “is very important, in recent years the iPhone in the development trend is rising day by day, iPhone mobile phone security is very strong, a lot of things are not open to the public, love limit free mobile app is for the iPhone and the development of a mobile application, widening the market also make the application to iPhone app development is becoming more and more urgent, you can love limit free development is not only the needs of customers is the demand of the market

The development of love limited free project use of iPhone own R & D software xcode6.0, mainly UIkit framework and Foundation framework.Love free for a limited time of project development, the data for display of the main application list controller UIableview, in the use of UItableview is reuse of the cell is the difficulty of this technology, mainly to avoid memory leak condition, which leads to the program crashes in the cell multiplexing and data acquisition application the AFHttpNetWork third-party libraries, the network data to get access to, to get the data model data receiving, which help to reduce coupling is process smoother.In to save the data used in the FMDB database of the third party, the bottom of this database is to squlite package is more comfortable profile application developers, improve efficiency, application of interface between data transmission difficulties blcok, this requires developers to more profound understanding of block, as well as the application of proficiency Keywords: IOS, squlite, block, application, control II

河南理工大学毕业设计(论文)说明书

目 录

摘 要............................................................I 第一章 前 言.....................................................1

1.1 课题开发背景................................................1 1.2 爱限免手机app框架设计开发的现实意义........................2 1.3 国内外研究状况..............................................2 1.4 论文内容和结构..............................................3 第2章 爱限免手机应用开发技术简介.................................5

2.1 Objective-c简介.............................................5 2.1.1 ios系统框架...........................................6 2.1.2核心操作系统层和核心服务层.............................7 2.1.3应用程序框架...........................................8 2.2 SQLite数据库介绍............................................9 2.3 XCode......................................................10 第3章 爱限免手机应用app需求分析................................11

3.1 爱限免手机应用app的可行性分析.............................11 3.2 爱限免手机应用app功能需求分析.............................13 3.2.1 功能需求..............................................14 第4章 爱限免手机应用app设计....................................16

4.1 模块功能设计...............................................16 4.1.1 限免模块..............................................16 4.2.1 免费模块..............................................21 4.2.2 专题模块..............................................26 4.2.3 分享功能模块..........................................30 4.2.4 收藏功能模块..........................................32 4.2.5 搜索功能模块..........................................36 第5章 系统测试..................................................38

5.1 功能模块测试...............................................38 5.2 功能整体测试...............................................39 总结与展望.......................................................40

总结...........................................................40

III

河南理工大学毕业设计(论文)说明书

展望...........................................................41 参考文献.........................................................43 谢 辞...........................................................44

IV

河南理工大学毕业设计(论文)说明书

第一章 前 言

1.1 课题开发背景

如今移动开发产业让人眼花缭乱,主要的开饭平台有:iOS(iPhoneOS)、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web(WAP/XHTML/CSS/Javascript)。Android以其开放性,多任务,大功能,画面流畅,硬件设备优良多样等各种优点,占智能机一大部分;然而它也存在着很明显的不足,如:兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。有些产品华而不实,用户体验差。Symbian主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便,另外塞班版本之间兼容性差也是SymbianOS需要改进的一个地方。就目前而言,三大平台(Android、Symbian、BlackBerry)的市场占有率也在逐渐下降,iOS呈现平稳上升趋势。

1.App Store的支付模式成熟

App Store的成熟不仅仅是商业模式的创新,更重要的是无法模仿,经过长时间的运营,App Store已经形成完备的支付模式,被大部分用户接受。

2.iOS是用Objective-C开发

从全球的编程语言排行榜来看,虽然,Objective-C只有苹果公司一家使用,但是已经排名第4,可见iOS开发的普及性和受欢迎程度,另外,objective-c是对c语言的封装,既没有了c语言写程序的繁琐复杂性,又兼顾了c语言的高效率,这也使得objective-c语言在编程语言中的地位以及受欢迎度日益上升的一个因素。

3.Iphone性能优越

苹果iPhone以及所有苹果的硬件软件策略和控制让苹果在用户体验和控制产品质量方面占尽先机,大部分iOS用户能够同时对他们手中的设备进行更新,这会吸引更多用户。

4.iPhone在中国极受欢迎

中国的各大移动运营商都积极地与苹果公司合作,各自推出适合中国人使用的手机套餐和应用,比如中国联通,中国电信等等,社会各界也对iPhone有很好的评价,还有很多知名手机应用软件,如qq微信等也加入了app store。

5.iOS在各国开发者中有很好的学习氛围

如facebook的three 20 iOS开源代码库,都是良好的学习资源,还有一些

河南理工大学毕业设计(论文)说明书

前辈大牛发表的博客如博客园就是一个ios开发者很好的交流网站,还有一些如cocoachina里边集合了很多开发者的心得及项目,国内外的开发大牛都有在上边发表自己的心得。也是ios开发者良好的学习资源。

1.2 爱限免手机app框架设计开发的现实意义

随着科技的发展技术的进步,手机的功能也出现了翻天覆地的变化,由原来只是打电话发短信的基本功能,转变为现在的全功能智能手机,人们对手机的要求也越来越高。

1.iphone手机中国市场无限扩大

Iphone手机的性能优越已经不言而喻,不用就释放也使得iphone手机避免了安卓手机卡机现象,然而iphone手机并不对外开源,是的其核心技术只被苹果公司垄断,关于iphone手机的手机应用也是少之又少,毕竟开发者有限。因此iphone手机的app开发也是迫切的。

2.开发框架完善

Iphone应用的开发主要平台式有iphone公司自己研发的开发平台xcode,是由苹果公司的先辈大牛写出来的,主要用于ios开发者开发软件,集合objective-c,性能比较完善。

3.满足市场

Iphone主要软件获取是从appStore中买或者是免费下载,爱限免主要实现对iphone手机应用的时时推荐,把app进行条理分类,便于用户根据个人需求获取自己想要得到的app。

1.3 国内外研究状况

1.国外

第一代iPhone在2007年诞生虽然现在也许很难想象,但是当第一代iPhone发布的时候,它相对来说落后的特性和功能是不足以让它直接在纸面的参数对比上胜过竞争对手的。当时的Windows Mobile, Palm OS, Symbian, 甚至是BlackBerry都是2007年间相对成熟的系统了,都拥有广泛而又深厚的特性积累。相比之下,iPhone不支持3G网络,不支持多任务操作,也不支持第三方应用。你没有办法去复制/粘贴文本,你没有办法在想要发送的电子邮件中添加附件。就连彩信iPhone也没有办法提供支持。其他方面的特性缺失还包括:Exchange邮件推送、可自定义的主屏幕、tethering、可见的全局文件管理器、Office文件编辑、语音拨号、以及对黑客和开发者所理应由的开放性,iphone发布三个 2

河南理工大学毕业设计(论文)说明书

月之后就迎来了第一次升级,引入了iTunes Wi-Fi MusicStore。它允许用户直接在iPhone上面购买音乐,它或许是许许多多iPhone新特性中因为运营商网络压力或者运营利益而遭到压制的例子中的第一个,在随之而来的ios2解决了手机应用问题加入了appstore,App Store同时存在于手机(AppStore应用)和PC(iTunes)两个地方,用户选择任意一种途径都可以自由地浏览和安装应用程序。这对于过去分散性极高的移动应用(大部分通过web直接下载,有些应用存在于第三方应用商店,整体和OS的整合度较差)来说是一个巨大的变化。另外重要的是,AppStore和iTunesMusic使用一个账号,用户无需再次输入自己的信用卡账号密码。这意味着查找和安装应用程序将前所未有的容易,这大大提高了用户冲动消费的可能性,在之后的升级中也加入了自己原创的地图的一些高级功能。2.国内

随着智能手机的大众化,越来越多的人应用智能手机。相对的对手机软件的需求也就越来越多。当今时代手机不再只是用来打电话、发短信的工具,反而对手机的娱乐功能要求越来越高。手机新闻也成为了人们的主要获取信息途径之一。目前中国新闻行业已经具备了相当的规模,并在国际市场上已有一定的竞争力。苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,基于iOS的手机软件需求量也就相应的越来越强。市场上的新闻品牌繁多,定位不一,基本满足了各层次消费者的需求,例如:腾讯新闻、搜狐新闻、网易新闻、新浪新闻等等这些大家所熟知的新闻已经在苹果软件中占据了一定的地位。智能手机的普及使得移动信息平台成为了主流。伴随着苹果手机进入中国市场,相应的iOS技术逐渐流行起来。而对于开发苹果应用的语言Objective-C,也成为当今社会最流行的开发语言,并且保持着强劲的上升趋势,隐隐有超过C语言的现象。对于其他的开发语言,例如java、javascripe,Object-C以其强大的优势遥遥领先于这些其他的编程语言。本人根据当前的形式,决定引用这种这种技术来开发手机应用。

1.4 论文内容和结构

本论文主要写的是一个ios项目-爱限免的实现过程,以及一些在实现过程中遇到的难题,解决方法,自己在解决问题中的体悟和感受,以及对以后项目的完善的展望,本文把实现项目过程中的核心代码张是给读者看,让读者对我的项目有初步的了解,也对关键代码附有文字说明以及代码运行后的图片展示。具体 3

河南理工大学毕业设计(论文)说明书

章节内容如下简介讲述:

第一章,介绍了课题的开发背景、课题开发的现实意义、国内外研究综述、论文内容及结构。

第二章,概略地介绍了开发爱限免手机应用多用到的各种技术,比如新技术Objective-c,SQLite数据库,开源框架的json解析等。

第三章,对爱限免系统结构设计、系统结构功能、运行环境等概要分析设计阶段做工了大体介绍即需求分析。

第四章,对系统总体流程设计、系统整体框架、后台逻辑处理功能设计和数据库设计作了简要说明具体介绍了系统各功能实现过程,如分享、收藏等。

第五章,大体介绍了对本系统的测试工作,涵盖了测试计划、测试结果以及测试分析这三个方面的内容。

河南理工大学毕业设计(论文)说明书

第2章 爱限免手机应用开发技术简介

该部分主要包括对iOS系统架构的分析、核心操作系统的分析、应用程序框架的分析、内核的分析、开发环境的配置信息、选用数据库描述信息等,具体如下:

2.1 Objective-c简介

Objective-C是非常“实际”的语言。它使用一个用C写成、很吊的运行库,只会令应用程序的占得内存增加很小。OC写成的程序通常不会比其源代码大很多。而其函数库(通常附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已经加入这个功能(尤其是GNUstep),再起Mac OS X 10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的XCode4中已经支持自动释放,我不敢冒昧的说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写[NSObject release]。

另一个问题是OC不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSobject或NSButton来清楚分别它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。虽然Objective-C是C的母集,但它也不是C的基本型别为第一级的对象。和C++不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。由于OC使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化方法都不能应用于OC(例如:内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得OC性能劣于类似的对象抽象语言(如C++)。不过OC拥护者认为既然OC运行时消耗较大,OC本来就不应应用于C++或Java常见的底层抽象

河南理工大学毕业设计(论文)说明书

2.1.1 ios系统

Cisco的网际操作系统(IOS)是一个为网际互连优化的操作系统--类似一个局域操作系统(NOS)、如Novell的 NetWare,为LANs而进行优化。IOS为长时间有效地维护一个互联网络提供了统一的规则。简而言之,它是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术

IOS可以被视作一个网际互连中枢。一个高度智能的管理员,负责管理、控制复杂的分布式网络资源。其早期版本是一个单独系统,基本上以路由器为中心。它被排列成一个过程(Procedure)集,允许任何过程之间相互呼叫。这种单一的结构使数据的隐蔽性和独立性不强。它的大多数操作代码拥有结构和操作的相关性

iPHONE是Mac出的封闭手机系统,iPhone相对要稳定,不开放源代码的,扩展相对不足,移植性很好!iPhone开发用的是Objective-C(一种C语言的第三方拓展版),从众面小,不能定制UI(界面),只能进行功能解锁 比如:越狱.iPhone定位于高端手机市场,走的是个性化路线,主要优势是AppStore(移动网上商店),Mac拥有全球最大最成熟的移动网上商店

1.模块性

IOS是Cisco路由软件的初始品牌名称。随着Cisco技术的发展,IOS不断扩展,成为Cisco Central ENgineering(中央工程部门)所称之为的“一系列紧密连接的网际互连软件产品”。尽管在其品牌名识别中,IOS可能仍然等同于路由软件,但是它的持续发展发已使之过渡到支持局域网和ATM交换机,并为网络管理应用提供重要的代理功能。必须强调的是,IOS是Cisco开发的技术:一项企业资产。它给公司提供独特的市场竞争优势。许多竞争者许可IOS在其集线器和中由模块内运行,IOS已尼广泛成为网际互连软件事实上的工业标准。

2.灵活性

基于Cisco产品的工程开发以用户可以获得适应变化的灵活性。IOS软件提供一个可扩展的平台,Cisco会随着需求和技术的发展集成新的功能。Cisco可以更快地将新产品投向市场,我们的客户可以享用这种优势。

3.可伸缩性

IOS遍布网际互连市场;广泛的Cisco使用伙伴及竞争者在他们的产品上支 6

河南理工大学毕业设计(论文)说明书

持IOS.IOS软件体系结构还允许其集成构造企业互联网络的所有部分。Cisco已经定义了4个:核心/中枢:网络中枢和WAN服务,包括大型骨干网络路由器和ATM交换机。工作组:从共享型局域网移植到局域网交换(VLANs)提供更优的网络分段和性能。)远程访问:远程局域网连接解决方案;边际路由器、调制解调器等。IBM网际互连:SNA和LAN并行集成,从SNA转换到IP.Cisco的IOS扩展了所有这些领域,提供了支持端到端网际互连的稳健性。

4.可操作性

IOS提供最广泛的基于标准的物理和逻辑协议接口——超过业界任何其他供应商:从双绞线到光纤,从局域网到园区网到广域网,Novell NetWare,UNIX,SNA以及其他许多接口。即是说,一个围绕IOS建立的网络将支持非常广泛的应用。

2.1.2核心操作系统层和核心服务层

位于iOS系统架构最下面的一层是核心操作层,它包括内存管理,文件管理,电源管理以及一些其他的操作系统业务,它可以直接和硬件设备交互。核心操作系统层包括以下这些组件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,File System Keychain,Certificates,Security,Bonjour等

开发人员也可以完全访问核心服务层来方问iOS的一些服务,包括数据库连接,URL学习等等,它主要包括以下这些组件:Collections,Address Book,Networking,File Access,SQLite,Core Location,Net Services,Threading,Preferences,URL Utilities等。

SQLite是嵌入式的和轻量级的sql数据库,广泛用于iOS应用。iOS系统内置SQLite数据库减小了开发人员的负担,是系统的一部分。

Net Servicer主要负责网络服务,在开发过程中,承担应用程序与服务器之间连接的角色,有很强的交互性。

媒体层,通过它可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:Core Audio,OpenGL,Audo Mixing,AudioRecording,VideoPlayback,JPG,PBG,TIFF,PDF,Quartz,CoreAnimation,OpenGL ES。最上面一层是可触摸层,这一层为应用开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:Multi-Touch Events,Core Motion,Camera,View Hierarchy,Localization,Alerts,Web Views,Image 7

河南理工大学毕业设计(论文)说明书

Picker,Multi-Touch Controls。

在Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了相机集合,文件管理,网络操作等支持。例如UIKit框架,它为应用程序提供了各种可视化组件,窗口(window),视图(view)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架,获取照片信息功能的框架,负责加速感应器和三维陀螺仪等硬件支持的框架等等。

2.1.3应用程序框架

编写应用程序项目,都是从CocoaTouch层开始的,具体来说是从UIKit Framework开始的。iOS常用的SDK框架如下:

AddressBook.framework 提供访问存储核心数据库中用户联系人信息的功能。

AddressBook.framework提供一个用户界面,用于显示存储在地址薄中的联系人详情。

AudioUnit.framework提供一个接口,让我们的应用程序可以对音频进行处理。

AudioToolbox.framework和AVFoundation.framework提供音频录制和回放的底层API,同时也负责管理音频硬件。

CFNetwork.framework访问和配置网络,像HTTP,FTP和Bonjour Services等。

CoreFoundation.framework提供抽象的常用数据类型,如Unicode、strings、XML、URL等。

CoreGraphics.framework提供2D绘制的基于C的API。

Foundation.framework提供Object-C的基础类(像NSObject)、基本数据类型和操作系统服务等。

GameKit.framework为游戏提供网络功能,点对点互联和游戏中的语音交流。MapKit.framework为应用程序提供内嵌地图的接口。MediaPlayer.framework提供视频播放和音频的功能。

MessageUI.framework提供视图控制接口用以处理E-mail和短信。OpenGLES.framework提供简洁而高效的绘制2D和3D图形的OpenGL API。QuartzCore.framework提供动画特效以及通过硬件进行渲染的能力。

河南理工大学毕业设计(论文)说明书

StoreKit.framework为应用程序提供在程序运行中消费的支持。SystemConfiguration.framework检测当前网络是否可用和硬件设备状态的能力。

2.2 SQLite数据库介绍

SQLite是一个轻量级、跨平台的关系型数据库。既然号称关系型数据库,支持SQL92标准中常用的事务(比如视图、事务、触发器等)就是理所当然的了,具体特色有以下几点:

1.轻量级

先说它的第一个特色:轻量级。想必SQLite的创建者很看重这个特性,连它的Logo都是用的“羽毛”,来显摆它的轻飘飘。SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态 库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB等。

2.绿色软件

SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。

3.单一文件

所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。

4.跨平台/可移植性

如果光支持主流操作系统,那就没啥好吹嘘的了。除了主流操作系统,SQLite还支持了很多冷门的操作系统。我个人比较感兴趣的是它对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。

5.内存数据库(in-memory database)

SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果你觉得磁盘I/O有可能成为瓶颈的话,可以考虑切换为内存方式。切换的时候,操作SQLite的代码基本不用大改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。

河南理工大学毕业设计(论文)说明书

2.3 XCode Xcode2.0是开发人员建立Mac OS X应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径。Xcode2.0将Mac OSX的轻松使用,UNIX 能量以及高性能的开发技术集合在一起。

不管你用C、C++、Objective-C或 Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现Xcode编译速度极快。每次操作都很快速和轻松。

Xcode4的虚拟模型和设计功能让你可以更轻松的开发和维护应用程序。只需选择应用程序中想要编写的部分,然后模型和设计系统将自动创建分类图表,不仅可以显示编码,还可以让你进行浏览。Mac OS X Core Data API 帮你的应用程序创建数据结构。更棒的是,它还自动提供撤消、重做和保存功能,无需编写任何编码。

Xcode整合的 Apple Reference Library为所有的Apple开发者文件提供一个单独的搜索和显示界面,这些文件包括来自苹果电脑公司网站的在线文件,以及存放在你电脑上的文件。新的参考资料库甚至可以帮你将定期更新资料下载到你的电脑,保持文件的最新状态。Xcode 将帮你快速找到最新的答案。

Xcode4的核心部分是苹果电脑公司下一代业界标准的gcc编译器gcc4.0。新的编译器利用许多先进的最优化技术帮你从现存编码中获得更多性能。从超级计算世界借鉴来的自动向量化(Auto-vectorization)技术可以帮助你释放每台 Intel 系统中速度引擎的能量,而不需要编写向量化编码。其他的最优化工具则支持反馈定向的最优化,以及隐藏模块分析。

Xcode 将赋予你创建诸如计算和渲染引擎应用程序的能力,这些应用程序使用64位内存定址。这非常适合数据集中的应用程序,其通过访问内存中的数据运行速度更快,远胜于磁盘访问。Xcode将为你提供工具来建立并调试适合 IntelCore i5, i7 和Mac OSX Lion的32或64位应用程序,还可以让你创建包含32位和64位执行能力的 Fat Binaries。

众所周知,在构建中引进多重处理器可以提高速度,Xcode 能帮你实现这个明显的结论。利用支持 Rendezvous 的分布式构建功能,可以轻易地把编译工作量分散到闲置的电脑上来寄放构建,或者更好是在单独的电脑上开发一个专门的 Xserve 构建寄放区,快速处理那些耗时的任务。

河南理工大学毕业设计(论文)说明书

第3章 爱限免手机应用app需求分析

根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析爱限免app所要实现的功能以及欲达到的效果,具体内容如下章节:

3.1 爱限免手机应用app的可行性分析

1.使用objective-c编程技术

Objective-c是非常实际的语言,他是一个用c写成、很小的运行库,只会令程序的尺寸增加很小,和大部分oo系统使用极大的vm执行时间会取代整个系统运作相反,Objective-c写的程序通常不会比起原始代码大很多,而其函数库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反,因objective-c它完全兼容标准c语言,c语言具有的高效性也被objective-c继承,但是我们用的objective-c并不像c语言用起来那么的复杂,因为它是对c的封装,把复杂高效的语言变得简单高效,这样更利于ios开发者使用,也为iOS开发者带来了便捷。(1)动态绑定

函数和消息的最根本不同是:函数和它的参数是在编译的时候已经确定下来,但是消息和接收对象知道程序已经在运行,消息在传递时才能确定下来。确切的消息方法实现依赖于消息的接收者,不同的接收者可能有相同的方法名不同的方法实现,只有在消息接收时才能确定(动态类型),通过源代码的类型定义并不能完全确认接收者的类型。运行时消息例程查找接收者和消息方法,找到消息方法实现的机器码,呼叫这个方法,传递给它消息实例变量指针(2)多态性

在Objective-c中消息的调用看上去和标准C中的函数调用相似,但因为方法属于一个对象,消息的行为与函数调用还是不同。在一些情况下,一些对象仅能对针对它涉及的方法起作用,不能被其他类的方法使用,即使这些类有同样名称的方法。这意味着两个对象对同样的消息有着不同的响应,即多态性。Objective-c中多态性和动态绑定配合使用,可以使代码提供给任意数量不同类型的对象使用,这些对象不需要再写代码的时候就已经定义好,它们可以是以后开发的对象,也可以是其他项目的对象。(3)面向对象

面向对象程序构建在多种对象之上,基于Cocoa框架的程序可能使用

河南理工大学毕业设计(论文)说明书

NSMatrix对象、NSWindow对象、NSDirectonary对象、NSFont对象以及许多其它对象。在Objective-c中通过定义类来定义对象。面向对象让开发者更容易开发应用程序软件,以及更加规范化(4)继承性

类的定义是累进的,任一个新类都是在另一个类的基础上定义的,新类继承了它的方法和实例变量。继承使所有的类构成一颗树形的结构,在Objective-c中使用类一般要继承或间接继承于基类:NSObject,因为NSObject提供了大量的有用特性。比如,一些图形类,需要继承于Shape类,而Shape是Graphic类的子类,Graphic又继承于NSObject类,因此,还是间接继承于NSObject类。类的继承关系图3-1所示:

图3-1 Objective-C类继承图

在项目中NSObject集合了所有类的基本方法,所有的=类都继承或者间接继承NSObject。2.社会市场因素可行性

如今社会发展迅速,手机行业更是赤手可热,手机应用的开发也是更新换代比较频繁,一款好的手机软件商店,不仅能适应市场的发展方向,更是为广大用户带来福利以及便捷。

按照目前市场情形,越来越多的移动开发者涌进iOS开发领域。iOS平台上应用软件,App Store的支付模式更为成熟而且有监管,另外iOS的兼容性问题小,开发人员不用考虑太多的配置兼容问题,美观大方的外形,更是吸引了大量

河南理工大学毕业设计(论文)说明书 的用户。而且其良好的用户体验,都为iOS的发展奠定了良好的基础。3.硬件工具可行性

使用工具方面,开发工具ios xcode6.0版本,要求mac10.8操作系统,一台已经安装有所有必备的软件及相应软件设备的计算机;内存要求大于或等于2G。

3.2 爱限免手机应用app功能需求分析

爱限免手机应用app,设计5个模块,每个模块各司其职,在整个工程中又到了MVC模式,单例模式,block模式,是每个功能模块化各模块之间的联系降到最低,使得每个模块都类似一个小型的家庭,每个成员各司其职,这样就降低了程序的耦合性有利于后期代码的维护,模块化的设计也使得你的app看起来更有你条理性,下边就是对模块化的图文解释,具体如图3-2-1:

图3-2-1 模块展示

河南理工大学毕业设计(论文)说明书

此图清晰的展示了app的5个功能模块,首相是上边的5个大模块,由一个分栏控制器UITablebarController控制,把这5各模块放到分栏控制器数组中进行控制,如图3-2-1设一个搜索控制器和一个详情控制器,通过正反向传值把5大功能模块的信息传到这两个控制器上边进行显示,其中在详情页面还有收藏分享工能,收藏使用了一个数据库进行装载数据,分享实在MOb注册了开发者 根据官方文档进行了qq空间分享(需要有qq空间客户端才行)。

3.2.1 功能需求

1.App应用的查看功能需求

此项目分别有5各视图控制器viewcontroller分别有系统的分栏控制器tabbaicontroller控制,可以根据下标来回相互切换,每个视图控制器上边都有一个表格控制器UITableview来进行展示数据内容,由于数据的内容各不相同,表格控制器还需要适应每个数据的变化,视图控制器之间还可以相互跳转,一般都是通过压栈的形势来进行跳转。2.App应用详情查看表功能需求

应用详情的展示由xib可视化编程和代码两者结合实现,可以展示商品的图片、大小、类型、详情介绍等内容,还有周边推荐,可以看到周边人的app,以经纬度来确定摸个区域。3.在线搜索应用功能需求

搜索功能有uiseacrbar来实现,通过app的名字,汉字英文都可以,通过代理方法把输入框里边的内容和数据中的信息对比,有相同的就保存到数组中,再通过UItableview展示到界面上来。4.在线app分享功能需求

分享的第三放有很多,我这里只用mob进行空间分享,这个功能需要开发者注册开发者账号,在官网上下载分享文档,提取核心代码,分享的实现有mob完成。

5.App收藏功能需求

App的收藏这里与运用了数据库,可以通过点击事件把你点击的app加到数据库中,再在相应的界面进行信息展示。6.App图片保存功能需求

通过点击事件来触发收藏相册的代理事件,把相应的图片收藏到相册,打开相册即可观看。

河南理工大学毕业设计(论文)说明书

7.App应用设置的功能需求

这里的app设置功能只做了,对收藏的app进行删除的操作。

河南理工大学毕业设计(论文)说明书

第4章 爱限免手机应用app设计

系统设计阶段主要的任务是系统各个模块的具体设计与实现。

4.1 模块功能设计

下面以具体的效果来展示各个功能模块。

4.1.1 限免模块

1实现显示免费app的展示 2 对限时免费app的详情查看 3对现实免费app的时间倒计时 4 app基本信息的显示

限免功能模块运行效果图如下4.1.1-1,4.1.1-2所示

图4.1.1-1限免界面

此图为限免模块的展示,如图界面由一个uitableview覆盖真个屏幕,商品在每个cell上进行信息展示,具体的设计由xib完成,下面展示cell的设计:

下边我就用代码来展示一下这个界面的实现: 首先是对网络数据的请求startTime;

cell.surplusTimeLabel.text = [NSString stringWithFormat:@”剩余:%.2lld:%.2lld:%.2lld“,time/3600,time%3600/60,time%60];

}else{

AppMode1 *mode = _searchArr[indexPath.row];

cell.nameLabel.text = mode.name;

cell.iconImage.image = [UIImage imageWithData:mode.iconData];

cell.lastPriceLabel.text = [NSString stringWithFormat:@”¥ %.1f“,[mode.lastPrice floatValue]];

cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戏“:@”应用“;

cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下载:%@次“,mode.shares,mode.favorites,mode.downloads];

//处理 星星

cell.starImageView.frame = CGRectMake(cell.starImageView.frame.origin.x, cell.starImageView.frame.origin.y, 65/5.0*[mode.starOverall floatValue], cell.starImageView.frame.size.height);//修改fream

河南理工大学毕业设计(论文)说明书

//处理 倒计时问题

NSDate *date = [NSDate date];

long long startTime =(long long)[date timeIntervalSince1970];

NSString *str = [mode.surplusTime componentsSeparatedByString:@”.“][0];

NSDateFormatter *fo = [NSDateFormatter new];

fo.dateFormat = @”YYYY-MM-dd HH:mm:ss“;

NSDate *endDate = [fo dateFromString:str];

long long endTime =(long long)[endDate timeIntervalSince1970];

long long time = endTime(UITableViewCell

*)tableView:(UITableView

*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@”cell“];

if(tableView == _tableView){

AppMode1 *mode = _dataArr[indexPath.row];

cell.nameLabel.text = mode.name;

cell.iconImage.image = [UIImage imageWithData:mode.iconData];

cell.lastPriceLabel.text = @”¥ 0.0“;

cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戏“:@”应用“;

cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下载:%@次“,mode.shares,mode.favorites,mode.downloads];

//处理 星星--下面两项 在xib中已经处理过

//

cell.starImageView.contentMode = UIViewContentModeLeft;//设置图片填充方式

//

cell.clipsToBounds = YES;//设置 自动切割超出自身fream的部分

cell.starImageView.frame cell.starImageView.frame.origin.y,=

CGRectMake(cell.starImageView.frame.origin.x, 65/5.0*[mode.starOverall

floatValue], cell.starImageView.frame.size.height);//修改fream

cell.surplusTimeLabel.text = [NSString stringWithFormat:@”评分:%.2f分“,[mode.starOverall floatValue]];

}else{

AppMode1 *mode = _searchArr[indexPath.row];

cell.nameLabel.text = mode.name;

cell.iconImage.image = [UIImage imageWithData:mode.iconData];25

河南理工大学毕业设计(论文)说明书

cell.lastPriceLabel.text = @”¥ 0.0“;

cell.categoryLabel.text = [mode.categoryName isEqualToString:@”Game“]?@”游戏“:@”应用“;

cell.countLabel.text = [NSString stringWithFormat:@”分享:%@次 收藏:%@次 下载:%@次“,mode.shares,mode.favorites,mode.downloads];

//处理 星星

cell.starImageView.frame cell.starImageView.frame.origin.y,=

CGRectMake(cell.starImageView.frame.origin.x, 65/5.0*[mode.starOverall

floatValue], cell.starImageView.frame.size.height);//修改fream

cell.surplusTimeLabel.text = [NSString stringWithFormat:@”评分:%.2f分“,[mode.starOverall floatValue]];

}

UILabel *lebel =(UILabel *)[cell.contentView viewWithTag:10];

lebel.hidden = YES;

return cell;} 4.2.2 专题模块

1按照一定的专题分类显示 运行效果图如下4.2.2-1

图4.2.2-1 专题界面

河南理工大学毕业设计(论文)说明书

专题界面实现如图所示,从图上不难看出这个界面的cell复杂得多,这个cell上不仅仅是一个app的展示,而是集合了多个app,每个app都显示不同的信息,而且点击每个app都会显示对应的商品详情,在这里处理这个就用到了block传值,下面对界面的设计进行代码展示,首先是请求数据的展示: AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

[manager GET:PAGE_D_URL parameters:@{@”page“:@”1“,@”limit“:@”5“} success:^(AFHTTPRequestOperation *operation, id responseObject){

NSArray *arr = responseObject;

for(int i=0;i

AppMode4 *mode = [[AppMode4 alloc]init];

mode.title0 = arr[i][@”title“];

mode.imageUrlStr1 = arr[i][@”img“];

mode.imageUrlStr6 = arr[i][@”desc_img“];

mode.title5 = arr[i][@”desc“];

mode.title1 = arr[i][@”applications“][0][@”name“];

mode.title2 = arr[i][@”applications“][1][@”name“];

mode.title3 = arr[i][@”applications“][2][@”name“];

mode.title4 = arr[i][@”applications“][3][@”name“];

mode.imageUrlStr2 = arr[i][@”applications“][0][@”iconUrl“];

mode.imageUrlStr3 = arr[i][@”applications“][1][@”iconUrl“];

mode.imageUrlStr4 = arr[i][@”applications“][2][@”iconUrl“];

mode.imageUrlStr5 = arr[i][@”applications“][3][@”iconUrl“];

mode.star1 = arr[i][@”applications“][0][@”starOverall“];

mode.star2 = arr[i][@”applications“][1][@”starOverall“];

mode.star3 = arr[i][@”applications“][2][@”starOverall“];

mode.star4 = arr[i][@”applications“][3][@”starOverall“];

mode.btnTitle1_1 = arr[i][@”applications“][0][@”comment“];

mode.btnTitle1_2 = arr[i][@”applications“][0][@”downloads“];

mode.btnTitle2_1 = arr[i][@”applications“][1][@”comment“];

mode.btnTitle2_2 = arr[i][@”applications“][1][@”downloads“];27

河南理工大学毕业设计(论文)说明书

mode.btnTitle3_1 = arr[i][@”applications“][2][@”comment“];

mode.btnTitle3_2 = arr[i][@”applications“][2][@”downloads“];

mode.btnTitle4_1 = arr[i][@”applications“][3][@”comment“];

mode.btnTitle4_2 = arr[i][@”applications“][3][@”downloads“];

_IDarray = @[arr[i][@”applications“][0][@”applicationId“],arr[i][@”applications“][1][@”applicationId“],arr[i][@”applications“][2][@”applicationId“],arr[i][@”applications“][3][@”applicationId“]];

[_IDMUarray addObject:_IDarray];

[_dataArr addObject:mode];

}

[_tableView reloadData];

} failure:^(AFHTTPRequestOperation *operation, NSError *error){

}];} 下面展示cell的赋值问题,这里我们会为每个app打上标签,一遍我们在传值的时候能辨认我们还点击的是哪个app。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

CustomCell_D *cell = [tableView dequeueReusableCellWithIdentifier:@”cell“];

cell.array = _IDMUarray[indexPath.row];

AppMode4 *mode = _dataArr[indexPath.row];

[cell setBlock:^(NSString *ID){

ViewControllerA_2 *viewCtl_2 = [[ViewControllerA_2 alloc]init];

viewCtl_2.appId = ID;

[self.navigationController pushViewController:viewCtl_2 animated:YES];

}];

[cell.myImageView1 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr1] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView2 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr2] placeholderImage:[UIImage

河南理工大学毕业设计(论文)说明书

imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView3 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr3] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView4 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr4] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView5 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr5] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

[cell.myImageView6 setImageWithURL:[NSURL

URLWithString:mode.imageUrlStr6] placeholderImage:[UIImage imageNamed:@”topic_TopicImage_Default“]];

cell.myLabel1.text = mode.title1;

cell.myLabel2.text = mode.title2;

cell.myLabel3.text = mode.title3;

cell.myLabel4.text = mode.title4;

cell.myLabel5.text = mode.title5;

[cell.btn1_2 setTitle:mode.btnTitle1_2 forState:UIControlStateNormal];

[cell.btn1_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle1_1] forState:UIControlStateNormal];

[cell.btn2_2 setTitle:mode.btnTitle2_2 forState:UIControlStateNormal];

[cell.btn2_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle2_1] forState:UIControlStateNormal];

[cell.btn3_2 setTitle:mode.btnTitle3_2 forState:UIControlStateNormal];

[cell.btn3_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle3_1] forState:UIControlStateNormal];

[cell.btn4_2 setTitle:mode.btnTitle4_2 forState:UIControlStateNormal];

[cell.btn4_1 setTitle:[NSString stringWithFormat:@”%@“,mode.btnTitle4_1] forState:UIControlStateNormal];

cell.star1.frame = CGRectMake(cell.star1.frame.origin.x, 29

河南理工大学毕业设计(论文)说明书

cell.star1.frame.origin.y, 65/5.0*[mode.star1 floatValue], cell.star1.frame.size.height);

cell.star2.frame = CGRectMake(cell.star2.frame.origin.x, cell.star2.frame.origin.y, 65/5.0*[mode.star2 floatValue], cell.star2.frame.size.height);

cell.star3.frame = CGRectMake(cell.star3.frame.origin.x, cell.star3.frame.origin.y, 65/5.0*[mode.star3 floatValue], cell.star3.frame.size.height);

cell.star4.frame = CGRectMake(cell.star4.frame.origin.x, cell.star4.frame.origin.y, 65/5.0*[mode.star4 floatValue], cell.star4.frame.size.height);

return cell;} 4.2.3 分享功能模块

1实现了分享的功能 运行效果图如下4.2.3-1

图4.2.4-1 点击分享默认界面

在这里分享功能我用了mob第三方分享,通郭mob给的官方文档,导入系统库,就可以实现分享功能,具体代码如下展示:

//注册shareSDK

[ShareSDK registerApp:@”74f6b479a893“];

//添加QQ空间应用

注册网址

http://connect.qq.com/intro/login/

[ShareSDK connectQZoneWithAppKey:@”1104627452“

appSecret:@”Usc84bJXmMeTzNCI“

qqApiInterfaceCls:[QQApiInterface class]

tencentOAuthCls:[TencentOAuth class]];

河南理工大学毕业设计(论文)说明书

//添加QQ应用

注册网址

http://open.qq.com/

[ShareSDK connectQQWithQZoneAppKey:@”1104627452“

qqApiInterfaceCls:[QQApiInterface class]

tencentOAuthCls:[TencentOAuth class]];

//分享点击事件

-(IBAction)shareButton:(id)sender {

//构造分享内容

id publishContent = [ShareSDK content:@”分享内容“

defaultContent:@”测试一下“

image:[ShareSDK imageWithPath:nil]

title:@”ShareSDK“

url:@”http://www.xiexiebang.com“

description:@”这是一条测试信息“

mediaType:SSPublishContentMediaTypeNews];

//创建弹出菜单容器

id container = [ShareSDK container];

[container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp];

//弹出分享菜单

[ShareSDK showShareActionSheet:container

shareList:nil

content:publishContent

statusBarTips:YES

authOptions:nil

shareOptions:nil

result:^(ShareType type, SSResponseState state, id statusInfo, id error, BOOL end){

if(state == SSResponseStateSuccess)

{

NSLog(NSLocalizedString(@”TEXT_ShARE_SUC“, @”分享成功“));

}

else if(state == SSResponseStateFail)

{

河南理工大学毕业设计(论文)说明书

NSLog(NSLocalizedString(@”TEXT_ShARE_FAI“, @”分享失败,错误码:%d,错误描述:%@“), [error errorCode], [error errorDescription]);

}

}];} 4.2.4 收藏功能模块

1显示你是否收藏成功 运行效果图如下4.2.5-1

图4.2.4-1 点击收藏显示界面

收藏功能我这里使用了一个ios本地数据库codata也是对sqlite的封装,这里使用了ios的单例模式,把这个数据库写在中转站中,形成一个单例,所谓的单例就是在整个项目工程中只会被实例化一次,不会重复多次实例化,确保每次取到的都是同一个数据库,代码如下

@interface AppDelegate : UIResponder

@property(strong, nonatomic)UIWindow *window;

@property(readonly, strong, nonatomic)NSManagedObjectContext *managedObjectContext;@property(readonly, strong, nonatomic)NSManagedObjectModel *managedObjectModel;@property(readonly, strong, nonatomic)NSPersistentStoreCoordinator

河南理工大学毕业设计(论文)说明书

*persistentStoreCoordinator;

在没次收藏成功的时候都会有一个提示图标,就是图里边的温馨提示,这里使用了一个 UIAlertView 来实现这个功能具体代码如下:

//赋值头像

AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager];

man.responseSerializer = [AFHTTPResponseSerializer serializer];

[man GET:_myIconUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject){

mode.iconData = responseObject;

//存储数据

[dele.managedObjectContext save:nil];

//弹出提示 收藏成功

UIAlertView *alv = [[UIAlertView alloc]initWithTitle:@”温馨提示“ message:@”收藏成功“ delegate:self cancelButtonTitle:@”知道了“ otherButtonTitles:nil, nil];

[alv show];

} failure:^(AFHTTPRequestOperation *operation, NSError *error){

}];下面就是收藏功能的实现,这里收藏功能是通过appdelegate把实例化的数据库在相应的控制器种取到,把要收藏的app添加到数据库中实现本地化存储,从而实现收藏,具体代码如下:

//取得 实体对象

AppDelegate *dele = [UIApplication sharedApplication].delegate;

AppMode *mode = [NSEntityDescription insertNewObjectForEntityForName:@”AppMode“ inManagedObjectContext:dele.managedObjectContext];

//赋值

mode.appId = self.appId;33

河南理工大学毕业设计(论文)说明书

mode.name = _myName;这样就把喜欢的app进行了收藏,由于这个数据库是被写成了单例,因此里边的数据是会不断更新的,而数据内容就是收藏的app,在需要展示的界面取出来数据库进行刷表就可以实现展示,具体代码如下:

[_arr2 removeAllObjects];

//从数据库取出收藏的app

AppDelegate *delegate = [UIApplication sharedApplication].delegate;

NSFetchRequest *request = [NSFetchRequest new];

request.entity = [NSEntityDescription entityForName:@”AppMode“ inManagedObjectContext:delegate.managedObjectContext];

_arr = [delegate.managedObjectContext executeFetchRequest:request error:nil];

//创建一个 滚动视图,高度根据需要改变

_sView = [[UIScrollView alloc]initWithFrame:self.view.bounds];

_sView.frame= CGRectMake(0, 50, self.view.bounds.size.width, self.view.bounds.size.height);

[self.view addSubview:_sView];

_sView.contentSize = CGSizeMake(self.view.bounds.size.width, 50+(_arr.count /3 +1)*100);

//根据收藏的app个数 创建图标

for(int i =0;i<_arr.count;i++){

UIImageView *view = [[UIImageView

alloc]initWithFrame:CGRectMake(30+i%3*100, 50+i/3*100, 60, 60)];

//打开人机交互开关

view.userInteractionEnabled = YES;

view.image = [UIImage imageWithData:[_arr[i] iconData]];34

河南理工大学毕业设计(论文)说明书

view.tag = 600+i;

UILabel *label = [[UILabel

alloc]initWithFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y + 60, 60, 20)];

label.textAlignment = NSTextAlignmentCenter;

label.font = [UIFont systemFontOfSize:12];

label.text = [_arr[i] name];

[_sView addSubview:label];

[_sView addSubview:view];

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(gesAction:)];

[view addGestureRecognizer:tap];

//创建 删除小图标

UIImageView *view2 = [[UIImageView alloc]initWithFrame:CGRectMake(-10,-10, 70, 70)];

//打开人机交互开关

view2.userInteractionEnabled = YES;//

view2.backgroundColor = [UIColor lightGrayColor];

view2.contentMode = UIViewContentModeTopLeft;

view2.image = [UIImage imageNamed:@”close“];

//添加到 图标视图上

[view addSubview:view2];

//判断是否 隐藏 删除小图标

if(!_btn.selected){

view2.hidden = YES;

}

//添加手势

UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(deleteGesAction:)];

[view2 addGestureRecognizer:tap2];35

河南理工大学毕业设计(论文)说明书

//添加到数组

[_arr2 addObject:view2];App的删除功能也是在这里实现的,通过点击设置按钮,使app的图标显示删除“×”,点击,把它从数据库中删掉,刷新数据,代码如下: //删除收藏的数据

-(void)deleteGesAction:(UIGestureRecognizer *)ges{

//根据点击的view 获取角标------正好相对应 要删除的app在arr中的角标

NSInteger index = [_arr2 indexOfObject:ges.view];//

NSLog(@”%ld",index);

//从数据库取出收藏的app

AppDelegate *delegate = [UIApplication sharedApplication].delegate;

//删除

[delegate.managedObjectContext deleteObject:_arr[index]];

[delegate.managedObjectContext save:nil];

//刷新页面

[_sView removeFromSuperview];

[self loadData];4.2.5 搜索功能模块

1实现app名字搜索显示 2 点击可以查看信息 运行效果图如下4.2.5-1,36

河南理工大学毕业设计(论文)说明书

图4.2.5-1 搜索结果界面

搜索界面的实现实在原有界面的基础上加上实现代理方法,用uiseachbar来实现app的搜索功能核心代码如下

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{

//清空搜索结果数组

[_searchArr removeAllObjects];

for(AppMode1 *mode in _dataArr){

if([mode.name rangeOfString:searchString].location!= NSNotFound){

[_searchArr addObject:mode];

}

}

return YES;} 37

河南理工大学毕业设计(论文)说明书

第5章 系统测试

系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。根据测试的概念和目的,在进行信息系统测试。

5.1 功能模块测试

1.限免模块的测试,主要测试、接口数据是否能正确显示,不出现闪退的情况,时间会不会刷新,每个app的星级会不会正确显示,这些测试中唯独最后两项最为麻烦,第一次测试的时候星星的显示问题总是搞不定,不管怎么调试都是显示五颗星,和显示的数据不照应,经过同学的帮忙,忙才发祥是父视图没有对子视图进行切割,还有就是限免的价格是被拉掉的,我是用xib做的拉掉的效果,但是在点击这个app的时候这个被拉掉的线就会莫名的消失,变成原样,当时周围的同学也是每办法了,这个问题一直拖到了最后,知道有天逛博客时看到有一篇博客写到点击cell的时候,cell会变成灰色,当时我就想到了这个问题,我认为我的划线没了可能是和cell的背景色冲突了,把这个关掉之后,果不其然,划线不会消失了。

2.降价模块测试,主要针对数据解析json的正确应用,josn解析的时候主要注意里边数据的取值方式,json数据里边你需要的可能是有一个数组构成的,也可能是一个字典,正当的取值才不会造成无谓的越界现象,还有json数据中并不是所有的数据都是字符串的形势显示,也可能会出现NSnumber的数据,当时在后期调试的时候,我的程序就因一个NSNUmber的数据没有处理好,导致程序崩溃,还很难找,因为我就没想到我会在这里取值出错误。

3.免费模块测试,主要测试对数据的解析,以及内容的显示。

4.专题模块的测试,主要测试cell上的控件是不是能正确的传值,主要注意block在反向传值的时候的回调,以及对block的应用,专题模块这一点可以说的是我耗时最多的一个界面,主要就消耗在界面传值这一块,由于cell上的app比较多,对于如何处理我选中的是哪个app是我一度陷入盲区,不知道如何处理,首先想到的方法是取到app的父视图,但是运行的时候根本不行,知道后边学习了block才解决了这个问题。

5.详情页面的测试,主要测试是不是每个界面都能正确的传进来数据,以及对数据的展示,数据图片不一样多造成的越界现象,图片的加载相册功能,分享功能,收藏功能。对周边应用的具体详情再次查看,怎么进行数据的处理,详情页面在处理的时候,难点就在于怎么把本页的周边app再通过点击app在本页显

河南理工大学毕业设计(论文)说明书

示具体的信息,这个问题导致我把程序进行了大修改,烦躁啊,因为前期的逻辑没处理好,导致这里传值出问题,不过在我的努力下还是把程序都改了。

在完成逐个模块测试后,开始对系统进行验收测试,运行该系统,在运行过程中查找出现的错误。

5.2 功能整体测试

在安装好配置环境的电脑上测试,刚开始出现屏幕混乱,经过反复修改,现在已经能正常运行。用xcode上自动检测内存工具,检测出多处内存泄露问题,都已经修改。测试到这个阶段就简单多了,繁琐的工作都做完了,不过在这个阶段我还是发现了一个严重的问题,就是内存泄露,原因是我在cell中实例化了一个控件,我当时竟然天真的以为ARC不会有内存泄露,但是还是出现了,cell复用的时候,虽然使用的以前的cell,但是你在cell里边申请的控件还会一直开辟空间消耗内存,这样就会导致内存泄露。

河南理工大学毕业设计(论文)说明书

总结与展望

总结

经过一段时间的忙碌,终于把毕业设计的任务完成了。现在我对该系统做一下总结

本项目的开发目标,主要是为了提供iphone手机应用平台,为用户更好的体验iphone手机。设计经过紧张而有序的系统开发,收获颇丰,感触颇深。现在对经验收获、教训反思两大部分总结如下: 经验收获:

1.编写程序前,对已完成设计构思的系统进行主次分析,排好功能实现顺序,列出程序编、写步骤,对于理清编程思路很有帮助。人的逻辑思维可能很发达,在设计当中可以不用笔记,在脑中就能想好三到五个功能的逻辑关系和编写步骤。但以后我们面对的是一个庞大的系统,大系统下分多个子系统,子系统下分多个功能模块,功能模块下分多个功能页面,功能页面下分多个子功能,而且子系统、功能模块、功能页面、子功能之间的逻辑关系构成了一张复杂庞大的逻辑关系网。这就需要我们在原先做好的设计流程图上,系统规划,全面分析,逐步细化,反复斟酌、推敲,然后列出编程计划。

2.善于借鉴他人的成果,实现自己的功能,可以有效地缩短开发时间,提高工作效率,是快速提高编程能力的最佳途径。借鉴他人的劳动成果并不是简单地拷贝别人的源代码,如果只是这样的话,你会因为系统经常的报错,却束手无策,最后将其认为是鸡肋而抱怨连天。应该是先要分析读透他人的程序思想,取其精华,去其糟粕,使之成为自己的思想,然后将这些功能块与自己的功能块融合。

3.在完成这个课题的过程中,遇到了很多问题。对于iOS的开发过程更是头疼,因为在iOS中有些控件必须接收协议,而且不用手动调用协议中的方法,系统自己调用,比如:UITableView。这个让我感觉很不可思议,以至于每次非得手动调用协议,但是每次都出错,后来就记住这个问题了。

4.每编完一个功能,应及时与其它完成功能一起测试,运行无误后,方可进行下一步开发。这样做是为了在测试时如果出错能很方便地找到出错的环节和病因所在,我们称之为“step by step”(一步一脚印),对于一个初级的程序开发者来说是很有帮助的。对于编程人员来说每一个环节都是来不得有半点差错的,每一个功能都是环环相扣,相互关联,相互作用的

河南理工大学毕业设计(论文)说明书

教训反思:(1).学习与实践的结合不当。当我进行程序开发的时候,发现以前学习的知识点到用时却忘得一干二净了,也只好重新学习基本知识了。如果以前把知识学得透彻点,理解深刻点,也许在开发过程中可以缩短时间,提高效率。反思自我,归其原因:不是当时的学习不够认真,而是缺乏对知识点的运用实践;对于像我这样“半路出家”的编程人员来说,只是理解知识点是远远不够的,如果当时没有经过编译、运行、调试的过程,很快就会忘记的。

(2).学习目标不专一。我们都知道在学习的时候是最忌讳这个还没学明白就去学那个的,结果当然是哪个也没学明白。这个没学好,就想用另一个,造成学习不深入,学习效果不好。以后一点要记住此教训。

展望

这次毕业设计项目做得时间挺长的,从开始学习c语言,到后来的高级语言objective-c、UI、初级网络、高级网络等。到最后项目的结束,感觉自己学习到了很多知识,但是知道的越多你就会越发的感觉到自己知识的不足,第一次开始认认真真的学习c还是从图书馆里的《21天精通c语言》开始,是一门语言你就要记忆很多东西,我学习的时候觉得最难得不是逻辑而是记忆,到后来的objective-c,这门高级语言的底层是对c语言的封装,把c的很多逻辑封装成方法,你只需拿来用就ok了,oc学完的时候已经是年后了,之后学习了UI的界面搭建,以及初级网络。学完初级网络就着手写自己的毕业项目,当时觉得很难,很多知识都不熟悉,还有分享,block等高级网络的知识还没有接触到,因此在初期毕业项目制作过程中只完成了界面的加载数据,界面之间没有相互的跳转,很没有活力,基本的界面搭建完成已经过了一个多星期了,之后有做了bug调试,把出现的问题解决了,这样这个app才有了形,这个完成之后我就着手学习了高级网络,接触到了分享,支付,通信等知识,还学了block的界面传值,平时学习完都会做一些小的demo来做练习,大概一星期之后才回头来完善自己的毕业项目,这是的毕业项目也已不是当初的大难题了。

虽然毕业项目做完了,但是功能并不是那么完美,就像我刚开始接触这门语言时,我会觉得很难办,到我学的多了,见得多,用的多了,丰富的知识已经让我感觉到自己入门了,有自己的学习方法了,本来学习就是一个循循渐进的过程,我们每个人都不可能一下子做的很完美,很出色,都需要不断的完善。我也希望自己在以后的工作中得到更多的知识、经验。让自己不断地进步,做出属于自己 41

河南理工大学毕业设计(论文)说明书 的独特的作品。

河南理工大学毕业设计(论文)说明书

参考文献

[1] 谭克强Objective-C程序设计(第四版)。

[2] 51cto网站oc教学视频自学。以及对牛人博客的借鉴。[3] 21天精通c语言,河南理工大学,图书馆。[4] 博客园学习,主要学习UI时对我的帮助很大。

[5] cocoaChina第三方库的使用,对后期做毕业设计,提供很多便利。

[6] 个人觉得最好用的还是度娘,什么问题都可以问她,自学学到的东西才会理解的更 深刻。

[7] DaveMak(美)JackNutting(美)JeffLaMarche(美)著.杨越孙文磊等译.ios5基础 教程[M].北京:人民邮电出版社.2013:3 [8] MarkDalrymple(美)ScottKnaster(美)著.杨越等译.Objective-C基础教程[M].北 京:人民邮电出版社.2012:7 [9] StephenG.Kochan著.林翼、范俊、朱奕欣译.Objective-C程序设计(第四版)[M]。北京:电子工业出版社,2012:12 [10] 虞斌著.Ios软件开发揭秘:iPhone&iPad企业应用和游戏开发[M].北京:电子出 版社,2011:1 [11] 克莱尔(美)著.李强译.Objective-C2.0Mac和ios开发实践指南[M].北京:机械 工业61出版社,2011:1 [12] BrianW.KernighanDeninisMRirchie著,徐宝文,李志(译)TheCProgramming Language[M].北京:机械工业出版社2003:2 [13] 徐松林,黄猛著.cocos2D-x手机游戏开发[M].北京:人民邮电出版社.[14] Ronpatton(美)著.王钰,曹跃译.软件测试[M].北京:机械工业出版社,2006 [15] 王水著.软件工程[M].河南:河南科学技术出版社,2008:8 [16] 吴洁明著.软件工程实例教程[M].北京:清华大学出版社,2010:11 43

河南理工大学毕业设计(论文)说明书

谢 辞

在本论文的写作过程中,我的导师宋成老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢,谢谢宋成老师在我撰写论文的过程中给与我的极大地帮助

同时我要感谢学院的各位老师、同学和朋友。在整个的论文写作中,各位老师、同学和朋友积极的帮助我查资料和提供有利于论文写作的建议和意见,在他们的帮助下,论文得以不断的完善,最终帮助我完整的写完了整个论文

另外,要感谢在大学期间所有传授我知识的老师,是你们的悉心教导使我有了良好的专业课知识,感谢这四年来计算机学院对我的栽培,使我成为了一名合格的理工学子。

下载ios简历项目怎么写(精选多篇)word格式文档
下载ios简历项目怎么写(精选多篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    IOS设计规范

    刚入门UI的小伙伴是不是不知道app该怎么切图、规范是什么?怎么和程序员同学配合,用什么工具更方便,怎么标注自己的设计稿,怎么做到一稿适配多种机型,这篇文章将一一解答你的疑问!......

    iOS教学大纲

    iOS教学大纲 C语言 教学目标:让学生掌握基本的编程思想,语言结构和常用经典算法。使学生具有基本的编程素养和思维。能够用c语言描述各类经典过程,记录各种数据。为之后的应用......

    IOS实践总结

    河北科技师范学院 IOS 科研技能训练 个人实习总结 实习类型 教学实习实习单位 指导教师 所在院(系) 班 级 姓 名 学 号 一、实习时间和地点 时间:2013.11.11-2013.11.17......

    IOS培训心得

    对于刚刚毕业的大学生,从怀揣梦想到现实的迷茫,断断续续的了解了社会的艰辛与困苦。经过接连不断的挫折便开始反思自身的现状:由于自身的专业技术技能较低,不能为社会创造更多的......

    iOS面试题整理

    1. 用#define定义一个宏,表示一年中的秒数。 @interface USER {NSSTring *name;} @end a) self.name=@”abc”与name=@”abc”的区别? b) self.name=[[NSSTring alloc]initWith......

    ios转正申请书

    ios转正申请书 尊敬的领导: 我于XX年7月4日进入公司,根据公司的需要,加入了XXX部,加入了XXX项目组,目前担任java程序员一职。到今天2个月试用期已满,根据公司的规章制度,现申请转为......

    IOS学习笔记

    Objective c学习1. 特殊的空类型 nil,该类型没有名称,空引用(nil)是空类型变量唯一的值,该类型可 以转换为任何引用类型 2. Ios系统中short int 2字节, int 4字节,long int 4字节,lo......

    杭州iOS培训

    杭州iOS培训 随着移动互联网的发展,不仅一线城市需求iOS开发人才比较大,二线、省会城市对iOS开发人才的需求同样非常大。杭州iOS培训:如何才能系统的学习好iOS开发?这是很多学......