收藏 分销(赏)

IOS开发流程说明书.doc

上传人:天**** 文档编号:11397362 上传时间:2025-07-21 格式:DOC 页数:34 大小:1MB 下载积分:12 金币
下载 相关 举报
IOS开发流程说明书.doc_第1页
第1页 / 共34页
IOS开发流程说明书.doc_第2页
第2页 / 共34页


点击查看更多>>
资源描述
IOS开发流程说明书 IOS 开发流程说明书 版本:V0.2 34 / 34 文档修订记录 版本编号或者更改记录编号 *变化 状态 简要说明(变更内容和变更范围) 日期 变更人 审批日期 审批人 V0.1 A 创建 2014/2/11 高明月 V0.2 M 添加创建项目流程和基础代码说明 2014/2/14 高明月 *变化状态:A——增加,M——修改,D——删除,N——正式发布 文档审阅信息 序号 审阅人 角色 审阅日期 签字 备注 目录 1 序言 6 1.1 编写目的 6 1.2 术语定义 6 1.3 参考资料 6 2 关于IOS 6 2.1 IOS介绍 6 2.2 IOS开发环境简述 7 3 创建项目 9 3.1 新建iOS项目 9 3.2 应用程序目录结构说明 12 3.3 应用程序初始结构概览 14 3.4 IOS应用程序的生命周期 15 4 代码入门(数据类型) 16 4.1 基础数据类型 17 4.2 OC数据类型 17 4.2.1 NSNumber类和NSInterger 17 4.2.2 NSString类型 19 4.2.3 NSArray类型 19 4.2.4 NSDictionary类型 20 4.2.5 NSDate类型 20 5 OC类的认识(成员变量和方法) 20 5.1 类的声明 21 5.2 方法的定义 24 6 运行和调试 24 6.1 IOS模拟器 25 6.1.1 选择设备 25 6.1.2 模拟器自定义设置 26 6.1.3 存储屏幕快照 27 6.2 程序调试 28 6.3 NSLog 29 1 序言 1.1 编写目的 本说明书为IOS开发流程说明书,制定本说明书的目的是针对IOS开发技术进行宏观表述。以便后续的设计、开发、测试、验收等工作顺利进行。 适用对象: IOS开发人员 项目管理人员 产品开发人员 1.2 术语定义 (1)真机 真机即所谓的iPhone手机或者ipad,是指具有IOS这个操作系统的手机,由苹果公司进行研制并销售,用户可以从appstroe上下载相关应用及游戏。 (2)IOS SDK IOS专属的软件开发工具包。 (3)Xcode IOS开发工具。 1.3 参考资料 暂无。 2 关于IOS 2.1 IOS介绍 苹果IOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。IOS及苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010WWDC大会上宣布改名为IOS。最新版本为IOS7.0。 更多的资料可以到苹果开发网站上获取: 本文主要对以下几个方面对IOS的开发入门进行引导说明。如图2-1所示。 图2-1 IOS开发入门说明的内容导航图 2.2 IOS开发环境简述 最友好,最现实,也是最方便的开发环境就是在Mac系统中安装Xcode进行开发。原因在于:第一,开发工具(Xcode)限制。苹果官方只提供Mac版的Xcode,而Xcode内置了Xcode IDE,性能分析工具,iOS SDK,iOS模拟器和最新的OS X,可以方便迅速的进行代码编辑以及应用调试,可谓是Mac和iOS开发工具的不二选择。第二,代码提示和自动补全。iOS开发中用到的类或方法的名称,为了更具语义化,让开发者一目了然,通常会比较长,这往往会让刚刚接触iOS开发的开发者为了记住这些方法而伤透脑筋。而Xcode拥有优于其他编辑器的OC代码提示和自动补全功能,这将很大程度降低开发入门的门槛,这决定你开发iOS应用没有理由不使用Xcode。因此,使用非苹果电脑的开发者们最好安装Mac OS X的虚拟机,进行开发学习,否则你不仅会比别人花上多出一倍甚至更多的时间去搭建开发环境,而且代码编写上也会比使用Xcode开发的人花上更多的精力。 目前Mac OS X系统的最高版本是10.9.1,如下图所示,Xcode版本可以安装到最高版本5.0.2.如果是在windows安装的虚拟机,发布的懒人版本最高应该是10.8.2。Xcode版本5及4是不能向下兼容的,主要是UI开发机制的修改,如果系统版本不统一建议,Xcode版本安装至4.6.1.暂时可以支持到iOS6.0 SDK的版本开发,如果要很对iOS7版本开发,建议Xcode都更新到5以上。 图2-1 OS X系统版本显示图 3 创建项目 3.1 新建iOS项目 打开Xcode,如果是首次打开Xcode,你将会看到一个欢迎界面,如图: 图3-1 Xcode欢迎界面 你可以直接在该界面中点击图3-1中1处标记的Create a new Xcode project来创建一个项目,也可以点击图中2处标记的按钮来打开电脑中已经存在的Xcode项目。你还可以修改3处标记的复选框状态设置下次启动Xcode是否显示该欢迎界面。 本文不演示在此点击1处所示创建项目,首先点击该界面左上角的红色按钮退出该欢迎界面,然后点击屏幕左上角的File->New->Project。截图如下: 图3-2 Xcode菜单界面 接下来你将看到如下界面: 图3-3 Xcode创建项目界面 首先进行系统筛选,iOS应用则选择iOS列表对应项,OS X应用则选择OS X列表对应项。本例为iOS应用,故在此选择iOS中的Application(图中左上角红框所示),然后选择应用模板选择,在界面右边列出了多种最常用的应用模板类型,开发者按照自己的应用需求可自行选择,本例选择Single View Application(图中右上角红框所示)。一般项目开发如果是自己定制的界面开发,建议选择Empty Application。做完以上选择后点击窗口右下角Next按钮,进入下一个设置窗口: 图3-4 Xcode项目信息界面 此处内容会根据个人情况而不同,故不做赘述,按照窗口提示,填写相关信息即可。注意窗口下方的三个复选框,其功能分别是使用storyboards、使用自动引用计数器、包含单元测试,根据个人情况勾选/取消即可。建议选择storyboards和Use ARC模式,关于ARC模式在以后的章节中会做重点介绍。设置完成后点击右下角Next按钮,进入下一个窗口: 图3-5 Xcode项目文件存储界面 按照窗口所示,选择项目存储位置后点击窗口右下角Create按钮,完成应用创建过程。 3.2 应用程序目录结构说明 项目创建完成之后,Xcode会进入项目开发界面,界面大致分为三部分,左侧项目及目录结构列表、中间为代码编辑区、右侧属性设置和控件列表等区域。下面是目录结构的截图: 图3-6 Xcode项目目录界面 项目初始时包含如图所示三个主要目录,后续开发中开发者可以自行添加目录。其中: · FirstIosApp目录及项目名称同名,主要存放应用相关源代码和配置文件; · Framework存放项目使用到的框架,默认会添加图示三个必备框架; · Products用于存放生成的应用文件,开发中开发者一般不必关心。 项目目录建议建立统一的说明文档,根据文档属性归类相同文件。下图3-7显示某一个完整项目的目录。 其中view文件夹内都是界面元素文件,parse是接口解析文件,images是图片文件,model是数据模型文件,dao是数据库操作文件,util是工具类文件,viewcontroller是界面文件。 文件目录实行统一化管理,方便文件的归类和查找,易于团队开发。 图3-7 Xcode项目目录实例界面 3.3 应用程序初始结构概览 整个应用程序的入口文件默认为AppDelegate.m,应该可以通过配置文件修改(未尝试)。其内部结构如下图3-8所示。 该文件包含应用程序生命周期中各个阶段可以调用的方法接口,以便应用程序在不同的状态阶段能进行相应的操作。这些方法就不一一说明了,开发者几乎可以望名知意。主要应用的方法就是didFinishLaunchingWithOptions,是程序启动后加载界面和初始化的方法。 图3-8 AppDelegate.m代码图 3.4 IOS应用程序的生命周期 对于上面图示方法如果还有不解的地方,可以参考下图3-9所示(来源于网络): 图3-9 IOS应用生命周期流程图 4 代码入门(数据类型) 做iOS开发,仅仅懂得使用Xcode,仅仅了解目录结构,仅仅了解生命周期,是远远不够的,这些只是基础中的基础。一定的编程能力也是必不可少的。下面就简单的介绍一下iOS开发的编程语言——Objective-C,后面简称OC。 学习一门语言,往往需要从最基础的数据类型开始,至于编程逻辑,技巧等则是在开发过程中慢慢积累的。下面对基础的数据类型和OC的数据类型详细说明一下。 4.1 基础数据类型 OC是C语言的一个超类,因此OC拥有C或C++的几乎所有特性,当然它也有自己独具一格的地方。所以OC也支持C语言的数据类型,诸如int,float等也都可以在OC中使用。基础数据类型可以参考一些C语言相关介绍,这里不多做介绍。 4.2 OC数据类型 OC不是仅仅只能使用C/C++的数据类型,它也拥有自己的数据类型,虽然及通常人们熟知的各种数据类型看起来不太一样,但事实上OC的数据类型是及基础数据类型相近,也不难理解。下面列举几个常见的OC数据类型。 4.2.1 NSNumber类和NSInterger NSNumber是以对象的形式来包装基础数据类型,它提供以下方法,以下会对OC的方法定义进行介绍: + (NSNumber *) numberWithChar: (char) value; + (NSNumber *) numberWithInt: (int) value; + (NSNumber *) numberWithFloat: (float) value; + (NSNumber *) numberWithBool: (BOOL) value; 例如,要从一个int数据初始化一个NSNumber可以这样写: NSNumber *number = [NSNumber numberWithInt: 100]; 而要从NSNumber实例得到NSInteger数据则可以如下操作: NSInteger integer = [number intValue]; 如果下载了SDK可以在数据类型上点击command按键,查看所有方法的定义。如下图所示。 图4-1 对OC基础类点击command按键显示图 图4-2 对OC基础类定义显示图 4.2.2 NSString类型 NSString是OC的字符串类。及普通字符串不同的是NSString的值需要在普通字符串前加上一个@符号。例如要初始化一个'I'm a string.'的OC字符串,我们需要这样做: NSString *str = [NSString stringWithString: @"I'm a string."]; OC也提供简写形式: NSString *str = @"I'm a string."; NSString类还提供了很多其他形式的创建字符串的方法(比如:stringWithFormat等),这里就不一一列举了,可以在基类中查看。 4.2.3 NSArray类型 NSArray是OC的数组类。OC的数组是很强大的,在一个数组中可以允许存在不同类型的数据,这个特性就跟强大的JavaScrit一样。初始化一个数组可以这样操作: NSArray *arr = [NSArray arrayWithObjects:@"a", @"b", @1, nil]; 当然也支持简化形式: NSArray *arr = @[@"a", @"b", @1]; 需要说明一点,使用arrayWithObjects方法创建数组的时候最后需要以nil结尾,而使用简化方式的时候不需要。 开发中可以使用以下两种形式获取数组对应索引位置(index)的值: NSString *a = arr[index]; NSString *b = [arr objectAtIndex: index]; 这里对NSMutableArray类型说明一下,很多基础类型都提供了类似的两种类型,主要区别是,NSArray类型是不变长数组,定义后是不能修改长度;NSMutableArray是可变长度数组,可以动态改变数组内元素长度和内容。 4.2.4 NSDictionary类型 NSDictionary是OC的字典类。字典类型在使用中以key-value键值对的形式存在。也支持多种初始化方式,下面列举两种: NSDictionary *dic = [NSDictionary dictionaryWithObjects:@[@"a",@"b", @"c"] forKeys:@[@"first", @"second", @"third"]]; NSDictionary *dic = @{@"first": @"a", @"second": @"b", @"third": @"c"}; 取值方法跟NSArray大同小异,也提供NSMutableDictionary类型: NSString *a = [dic objectForKey: @"first"]; NSString *b = dic[@"second"]; 4.2.5 NSDate类型 NSDate是OC的日期类。常见用法举例: NSDate *date = [NSDate date]; //返回当前时间 NSDate *date = [[NSDate alloc] init]; //初始化为当前时间,类似date 5 OC类的认识(成员变量和方法) iOS开发常常伴随着视图,而视图往往离不开视图控制器,在iOS开发中每一个视图控制器就是一个OC的类,因此学习iOS开发就必须了解OC的类。 OC的类使用@interface ClassName: 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,下面我们看下这个过程。 首先,类的结构如下: @interface Person: NSObject { NSString *name; int age; } end 然后,我们声明它的setter和getter方法,用来设置和读取它的成员变量的值。按照传统方式应该如下定义: @interface Person: NSObject { NSString *name; int age;} - (void) setName: (NSString *) newName; - (NSString *) getName; - (void) setAge: (int) newAge; - (int) getAge; end OC还提供了更简单的代码方式: @interface Person: NSObject { NSString *name; int age;} @property(nonatomic, strong) NSString *name; @property(nonatomic, assign) int age; end 它的功能和上面的代码是一样的。补充一下,@property本身可以接受参数来指定变量的getter和setter方式,其参数可用值和具体功能如下: nonatomic //声明变量只在单线程中工作 atomic //默认值,可能有多个线程会用到这个变量 copy //分配一个新的空间,把原地址的内容复制过来 assign //简单的传递指针 retain //传递指针后引用计数器(retainCount)会自加1 strong //强引用 weak //弱引用 声明就这样就完成了,下面我们看下它的具体实现,在OC中类的实现需要使用另外一个关键字@implementation,格式如下: @implementation Person end 我们还是先看下传统方式声明getter和setter方法该如何实现: @implementation Person - (void) setName: (NSString *) newName { self.name = newName;} - (NSString *) getName { return self.name;} - (void) setAge: (int) newAge { self.age = newAge;} - (int) getAge { return self.age;} end OC提供的更简单的代码编码格式: @implementation Person @synthesize name; @synthesize age; //或者直接下面一句 //@synthesize name,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.1 IOS模拟器 6.1.1 选择设备 Xcode的强大在于内置了很多开发和调试的工具,在Xcode中内置了iOS模拟器,能够模拟几乎所有iOS真机的功能,因此开发者可以通过iOS模拟器测试正在开发中的应用程序,提高开发效率,减少错误,节省开发时间。在运行前选择及应用对应的模拟设备是必须的,否则可能导致运行结果出现意外的问题。 在Xcode的菜单栏下方提供了选择模拟器的地方,建议下载5.0版本的iPhone模拟器,一般程序需要兼容IOS5.0版本。如图所示: 图6-1 选择模拟器运行 选择好模拟器后点击左侧的Run按钮,就可以在指定的模拟器中启动应用了。第一次启动模拟器一般会比较慢,后面就好了。同样可以点击Run旁边的Stop按钮,停止模拟器中的当前应用。也许有些时候你想独立运行iOS模拟器,而不启动当前应用,这也是可以的,请看下图: 图6-2 启动模拟器选项 也许相同的设备,但是却又多个尺寸,多个屏幕分辨率,例如:iPhone就有4、4S、5等。有模拟器可以对尺寸选择: 图6-3 选择模拟器尺寸选项 6.1.2 模拟器自定义设置 现在很多流行的iOS应用都有定位功能,那么在模拟器怎么测试定位呢?如下图所示: 图6-4模拟器自定义位置 6.1.3 存储屏幕快照 开发应用程序通常都不是一步到位的,过程中可能会产生各种各样稀奇古怪的现象,也许是显示不正常,也许是出现意外的效果,也或者你想把你当前的显示效果分享给开发团队的其他成员,这个时候作为开发者,你也许想要记录出现的这些现象,比如:截图、录屏什么的。这些都是不错的方法,但是iOS模拟器拥有更加方便的方式,如图所示: 图6-5模拟器存储屏幕快照 模拟器还有很多其他功能,在以后的开发应用中将会逐渐补充。 6.2 程序调试 每一个开发者都不能保证他的程序是完美的,所以通常在我们运行程序的时候会出现很多奇怪的警告或者错误,有的可以一目了然,迎刃而解,有的却隐藏得很深,很难发现。这时候断点调试就直观重要了。 在代码编辑器的左边的行号区,鼠标在这个区域单击可以在对应行上添加/关闭(不是删除)断点。启动断点,当再次运行程序的时候,程序若执行到当前行,则会暂停在当前行上,开发者可以在控制台看到断点处记录的信息。大致如图: 图6-6 控制台信息 如图所示,在断点处我们可以在控制台看到变量date的当前值以及内存地址等信息,这样就可以通过这些信息判断程序运行到该处时是否正常,也可以这样查看一些其他信息。 程序调试有很多技巧,Xcode也提供很强大的调试工具,断点调试是最直观的,其他的调试技巧会逐渐补充。 6.3 NSLog 有些时候我们可能会遇到一些仅靠断点无法解决的问题,这时我们还可以借助NSLog进行调试。NSLog也用于在控制台输出信息。NSLog类似Java中的systemout功能,可以让我们获取更多信息。如图: 图6-7 控制台log信息输出 通过以上的内容的介绍,我们可以基本使用Xcode进行iOS应用的开发,之后会补充iOS中的基本控件介绍和在项目开发中会遇见的问题和解决方案。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服