IOS开发流程说明书_第1页
IOS开发流程说明书_第2页
IOS开发流程说明书_第3页
IOS开发流程说明书_第4页
IOS开发流程说明书_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

IOS开发流程说明书版本:V0.2文档修订记录版本编号或者更改记录编号*变化状态简要说明(变更内容和变更范围)日期变更人审批日期审批人V0.1A创建2014/2/11高明月V0.2M添加创建项目流程和基础代码说明2014/2/14高明月*变化状态:A——增加,M——修改,D——删除,N——正式发布

文档审阅信息序号审阅人角色审阅日期签字备注

目录1序言 61.1 编写目的 61.2 术语定义 61.3 参考资料 62关于IOS 62.1IOS介绍 62.2IOS开发环境简述 73创建项目 93.1新建iOS项目 93.2应用程序目录结构说明 123.3应用程序初始结构概览 143.4IOS应用程序的生命周期 154代码入门(数据类型) 164.1基础数据类型 174.2OC数据类型 174.2.1NSNumber类和NSInterger 174.2.2NSString类型 194.2.3NSArray类型 194.2.4NSDictionary类型 204.2.5NSDate类型 205OC类的认识(成员变量和方法) 205.1类的声明 215.2方法的定义 246运行和调试 246.1IOS模拟器 256.1.1选择设备 256.1.2模拟器自定义设置 266.1.3存储屏幕快照 276.2程序调试 286.3NSLog 29

1序言编写目的本说明书为IOS开发流程说明书,制定本说明书的目的是针对IOS开发技术进行宏观表述。以便后续的设计、开发、测试、验收等工作顺利进行。适用对象:IOS开发人员项目管理人员产品开发人员术语定义(1)真机真机即所谓的iPhone手机或者ipad,是指具有IOS这个操作系统的手机,由苹果公司进行研制并销售,用户可以从appstroe上下载相关应用及游戏。(2)IOSSDKIOS专属的软件开发工具包。(3)XcodeIOS开发工具。参考资料暂无。2关于IOS2.1IOS介绍苹果IOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等产品上。IOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhoneOS,直到2010WWDC大会上宣布改名为IOS。最新版本为IOS7.0。更多的资料可以到苹果开发网站上获取:/special/fornew.html 本文主要对以下几个方面对IOS的开发入门进行引导说明。如图2-1所示。图2-1IOS开发入门说明的内容导航图2.2IOS开发环境简述最友好,最现实,也是最方便的开发环境就是在Mac系统中安装Xcode进行开发。原因在于:第一,开发工具(Xcode)限制。苹果官方只提供Mac版的Xcode,而Xcode内置了XcodeIDE,性能分析工具,iOSSDK,iOS模拟器和最新的OSX,可以方便迅速的进行代码编辑以及应用调试,可谓是Mac和iOS开发工具的不二选择。第二,代码提示和自动补全。iOS开发中用到的类或方法的名称,为了更具语义化,让开发者一目了然,通常会比较长,这往往会让刚刚接触iOS开发的开发者为了记住这些方法而伤透脑筋。而Xcode拥有优于其他编辑器的OC代码提示和自动补全功能,这将很大程度降低开发入门的门槛,这决定你开发iOS应用没有理由不使用Xcode。因此,使用非苹果电脑的开发者们最好安装MacOSX的虚拟机,进行开发学习,否则你不仅会比别人花上多出一倍甚至更多的时间去搭建开发环境,而且代码编写上也会比使用Xcode开发的人花上更多的精力。目前MacOSX系统的最高版本是10.9.1,如下图所示,Xcode版本可以安装到最高版本5.0.2.如果是在windows安装的虚拟机,发布的懒人版本最高应该是10.8.2。Xcode版本5与4是不能向下兼容的,主要是UI开发机制的修改,如果系统版本不统一建议,Xcode版本安装至4.6.1.暂时可以支持到iOS6.0SDK的版本开发,如果要很对iOS7版本开发,建议Xcode都更新到5以上。图2-1OSX系统版本显示图3创建项目3.1新建iOS项目打开Xcode,如果是首次打开Xcode,你将会看到一个欢迎界面,如图:图3-1Xcode欢迎界面你可以直接在该界面中点击图3-1中1处标记的CreateanewXcodeproject来创建一个项目,也可以点击图中2处标记的按钮来打开电脑中已经存在的Xcode项目。你还可以修改3处标记的复选框状态设置下次启动Xcode是否显示该欢迎界面。本文不演示在此点击1处所示创建项目,首先点击该界面左上角的红色按钮退出该欢迎界面,然后点击屏幕左上角的File->New->Project。截图如下:图3-2Xcode菜单界面接下来你将看到如下界面:图3-3Xcode创建项目界面首先进行系统筛选,iOS应用则选择iOS列表对应项,OSX应用则选择OSX列表对应项。本例为iOS应用,故在此选择iOS中的Application(图中左上角红框所示),然后选择应用模板选择,在界面右边列出了多种最常用的应用模板类型,开发者按照自己的应用需求可自行选择,本例选择SingleViewApplication(图中右上角红框所示)。一般项目开发如果是自己定制的界面开发,建议选择EmptyApplication。做完以上选择后点击窗口右下角Next按钮,进入下一个设置窗口:图3-4Xcode项目信息界面此处内容会根据个人情况而不同,故不做赘述,按照窗口提示,填写相关信息即可。注意窗口下方的三个复选框,其功能分别是使用storyboards、使用自动引用计数器、包含单元测试,根据个人情况勾选/取消即可。建议选择storyboards和UseARC模式,关于ARC模式在以后的章节中会做重点介绍。设置完成后点击右下角Next按钮,进入下一个窗口:图3-5Xcode项目文件存储界面按照窗口所示,选择项目存储位置后点击窗口右下角Create按钮,完成应用创建过程。3.2应用程序目录结构说明项目创建完成之后,Xcode会进入项目开发界面,界面大致分为三部分,左侧项目及目录结构列表、中间为代码编辑区、右侧属性设置和控件列表等区域。下面是目录结构的截图:图3-6Xcode项目目录界面项目初始时包含如图所示三个主要目录,后续开发中开发者可以自行添加目录。其中:FirstIosApp目录与项目名称同名,主要存放应用相关源代码和配置文件;Framework存放项目使用到的框架,默认会添加图示三个必备框架;Products用于存放生成的应用文件,开发中开发者一般不必关心。项目目录建议建立统一的说明文档,根据文档属性归类相同文件。下图3-7显示某一个完整项目的目录。其中view文件夹内都是界面元素文件,parse是接口解析文件,images是图片文件,model是数据模型文件,dao是数据库操作文件,util是工具类文件,viewcontroller是界面文件。文件目录实行统一化管理,方便文件的归类和查找,易于团队开发。图3-7Xcode项目目录实例界面3.3应用程序初始结构概览整个应用程序的入口文件默认为AppDelegate.m,应该可以通过配置文件修改(未尝试)。其内部结构如下图3-8所示。该文件包含应用程序生命周期中各个阶段可以调用的方法接口,以便应用程序在不同的状态阶段能进行相应的操作。这些方法就不一一说明了,开发者几乎可以望名知意。主要应用的方法就是didFinishLaunchingWithOptions,是程序启动后加载界面和初始化的方法。图3-8AppDelegate.m代码图3.4IOS应用程序的生命周期对于上面图示方法如果还有不解的地方,可以参考下图3-9所示(来源于网络):图3-9IOS应用生命周期流程图4代码入门(数据类型)做iOS开发,仅仅懂得使用Xcode,仅仅了解目录结构,仅仅了解生命周期,是远远不够的,这些只是基础中的基础。一定的编程能力也是必不可少的。下面就简单的介绍一下iOS开发的编程语言——Objective-C,后面简称OC。学习一门语言,往往需要从最基础的数据类型开始,至于编程逻辑,技巧等则是在开发过程中慢慢积累的。下面对基础的数据类型和OC的数据类型详细说明一下。4.1基础数据类型OC是C语言的一个超类,因此OC拥有C或C++的几乎所有特性,当然它也有自己独具一格的地方。所以OC也支持C语言的数据类型,诸如int,float等也都可以在OC中使用。基础数据类型可以参考一些C语言相关介绍,这里不多做介绍。4.2OC数据类型OC不是仅仅只能使用C/C++的数据类型,它也拥有自己的数据类型,虽然与通常人们熟知的各种数据类型看起来不太一样,但事实上OC的数据类型是与基础数据类型相近,也不难理解。下面列举几个常见的OC数据类型。4.2.1NSNumber类和NSIntergerNSNumber是以对象的形式来包装基础数据类型,它提供以下方法,以下会对OC的方法定义进行介绍:+(NSNumber*)numberWithChar:(char)value;+(NSNumber*)numberWithInt:(int)value;+(NSNumber*)numberWithFloat:(float)value;+(NSNumber*)numberWithBool:(BOOL)value;例如,要从一个int数据初始化一个NSNumber可以这样写:NSNumber*number=[NSNumbernumberWithInt:100];而要从NSNumber实例得到NSInteger数据则可以如下操作:NSIntegerinteger=[numberintValue];如果下载了SDK可以在数据类型上点击command按键,查看所有方法的定义。如下图所示。图4-1对OC基础类点击command按键显示图图4-2对OC基础类定义显示图4.2.2NSString类型NSString是OC的字符串类。与普通字符串不同的是NSString的值需要在普通字符串前加上一个@符号。例如要初始化一个'I'mastring.'的OC字符串,我们需要这样做:NSString*str=[NSStringstringWithString:@"I'mastring."];OC也提供简写形式:NSString*str=@"I'mastring.";NSString类还提供了很多其他形式的创建字符串的方法(比如:stringWithFormat等),这里就不一一列举了,可以在基类中查看。4.2.3NSArray类型NSArray是OC的数组类。OC的数组是很强大的,在一个数组中可以允许存在不同类型的数据,这个特性就跟强大的JavaScrit一样。初始化一个数组可以这样操作:NSArray*arr=[NSArrayarrayWithObjects:@"a",@"b",@1,nil];当然也支持简化形式:NSArray*arr=@[@"a",@"b",@1];需要说明一点,使用arrayWithObjects方法创建数组的时候最后需要以nil结尾,而使用简化方式的时候不需要。开发中可以使用以下两种形式获取数组对应索引位置(index)的值:NSString*a=arr[index];NSString*b=[arrobjectAtIndex:index];这里对NSMutableArray类型说明一下,很多基础类型都提供了类似的两种类型,主要区别是,NSArray类型是不变长数组,定义后是不能修改长度;NSMutableArray是可变长度数组,可以动态改变数组内元素长度和内容。4.2.4NSDictionary类型NSDictionary是OC的字典类。字典类型在使用中以key-value键值对的形式存在。也支持多种初始化方式,下面列举两种:NSDictionary*dic=[NSDictionarydictionaryWithObjects:@[@"a",@"b",@"c"]forKeys:@[@"first",@"second",@"third"]];NSDictionary*dic=@{@"first":@"a",@"second":@"b",@"third":@"c"};取值方法跟NSArray大同小异,也提供NSMutableDictionary类型:NSString*a=[dicobjectForKey:@"first"];NSString*b=dic[@"second"];4.2.5NSDate类型NSDate是OC的日期类。常见用法举例:NSDate*date=[NSDatedate];//返回当前时间NSDate*date=[[NSDatealloc]init];//初始化为当前时间,类似date5OC类的认识(成员变量和方法)iOS开发常常伴随着视图,而视图往往离不开视图控制器,在iOS开发中每一个视图控制器就是一个OC的类,因此学习iOS开发就必须了解OC的类。OC的类使用@interfaceClassName:superClass<protocol>…@end结构来定义,NSObject是所有OC类的父类。与java相比OC的@interface关键字就等同于JAVA的class关键字,OC的protocol就是JAVA中的interface,学习时需要特别注意。下图展示的是一个类的定义。图5-1定义类代码图5.1类的声明举例声明一个Person的类(视图控制器)并实现它,拥有name、age两个成员变量,自然需要定义getName和setName、getAge和setAge,下面我们看下这个过程。首先,类的结构如下:@interfacePerson:NSObject{NSString*name;intage;}end然后,我们声明它的setter和getter方法,用来设置和读取它的成员变量的值。按照传统方式应该如下定义:@interfacePerson:NSObject{NSString*name;intage;}-(void)setName:(NSString*)newName;-(NSString*)getName;-(void)setAge:(int)newAge;-(int)getAge;endOC还提供了更简单的代码方式:@interfacePerson:NSObject{NSString*name;intage;}@property(nonatomic,strong)NSString*name;@property(nonatomic,assign)intage;end它的功能和上面的代码是一样的。补充一下,@property本身可以接受参数来指定变量的getter和setter方式,其参数可用值和具体功能如下:nonatomic//声明变量只在单线程中工作atomic//默认值,可能有多个线程会用到这个变量copy//分配一个新的空间,把原地址的内容复制过来assign//简单的传递指针retain//传递指针后引用计数器(retainCount)会自加1strong//强引用weak//弱引用声明就这样就完成了,下面我们看下它的具体实现,在OC中类的实现需要使用另外一个关键字@implementation,格式如下:@implementationPersonend我们还是先看下传统方式声明getter和setter方法该如何实现:@implementationPerson-(void)setName:(NSString*)newName{=newName;}-(NSString*)getName{return;}-(void)setAge:(int)newAge{self.age=newAge;}-(int)getAge{returnself.age;}endOC提供的更简单的代码编码格式:@implementationPerson@synthesizename;@synthesizeage;//或者直接下面一句//@synthesizename,age;end在新版的Xcode中,@synthesize是可以省略的,但是建议还是都写上。5.2方法的定义下面对方法的如何定义进行说明,如图是一个方法的声明。图5-2方法声明代码图其中(BOOL)是该方法返回的数据类型,如果不需要返回则定义为(void),如果有返回数据,方法中需要return关键字返回匹配的数据类型。contains:…toFind:…{}是方法名称的定义,这是自定义方法的名称。…是传入的参数,方法的定义如同一句话的说明。这个方法可以这么理解,此函数是包含方法,在temp字符串中要找到search字符串,如果找到返回Yes,如果没有找到返回No。(NSString*)temp和(NSString*)search是参数,括号里面的是参数的数据类型,temp和search是参数名称。关于方法前面的+和-符号需要解释一下。首先我们需要说明一下,一个类可以拥有成员变量和方法,而方法可以包含类方法和实例方法。所谓类方法是可以使用类名直接调用的方法,而实例方法是需要该类的实例才可以调用的方法。而在OC中使用“+”表示该方法为类方法,而“-”很简单自然是表示实例方法了。至于方法的声明和实现大致和传统方式声明getter和setter是一样的,这部分就不再重复了。6运行和调试每一个应用的开发过程都是漫长的,而在这个过程中我们免不了需要不时的运行一下程序,看看当前的效果,检查一下代码是否存在异常或者错误。6.1IOS模拟器6.1.1选择设备Xcode的强大在于内置了很多开发和调试的工具,在Xcode中内置了iOS模拟器,能够模拟几乎所有iOS真机的功能,因此开发者可以通过iOS模拟器测试正在开发中的应用程序,提高开发效率,减少错误,节省开发时间。在运行前选择与应用对应的模拟设备是必须的,否则可能导致运行结果出现意外的问题。在Xcode的菜单栏下方提供了选择模拟器的地方,建议下载5.0版本的iPhone模拟器,一般程序需要兼容IOS5.0版本。如

温馨提示

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

评论

0/150

提交评论