Xcode中的iOS工程模板
从图中可以看出,ios工程模板分为3类 -- Application ,Framework & Library和Other ,下面分别详解介绍3类模板
1. Application类型
我们大部分的开发工作都是从使用Application类型模板创建iOS程序开始的。该类型共包含7个模板,具体如下所示。
-
Master-Detail Application。可以构建树形结构导航模式应用,生成的代码中包含了导航控制器和表视图控制器等。
-
OpenGL Game。可以构建基于OpenGL ES的游戏应用。
-
Page-Based Application。可以构建类似于电子书效果的应用,这是一种平铺导航。
-
Single View Application。可以构建简单的单个视图应用。
-
Tabbed Application。可以构建标签导航模式的应用,生成的代码中包含了标签控制器和标签栏等。
-
Utility Application。可以构建实用型应用程序,它会生成两个视图控制器——主视图控制器和子视图控制
器。在iPhone中子视图以模态方式呈现,在iPad中子视图以浮动窗口(popover)的形式呈现。
-
Empty Application。可以构建一个空应用程序,需要我们自己添加视图等对象。该模板很少使用。
-
SpriteKit Game。它是苹果自己的2D游戏引擎,可以帮助我们基于iOS的2D游戏。2. Framework & Library类型
Framework & Library类型的模板如图2-12所示,它可以构建基于Cocoa Touch的静态库。
-
说明 出于代码安全和多个工程重用代码的考虑,我们需要将一些类或者函数编写成静态库。静态库不能独立运行,编译成功时会生成名为libXXX.a的文件(例如libHelloWorld.a)。
3. Other类型
利用该类型,我们可以构建应用内购买包 和空工程 ,使用应用包购买内容包,可以帮助我们构建具有内置收费功能的应用。
我们可以根据需要选用不同工程模板,这可以大大减少我们的工作量
2.1.3 应用剖析
如图所示,
导航视图下有HelloWorld、HelloWorldTests 、Frameworks和Products四个组。其中HelloWorld组中放置HelloWorld工程的重要代码,而HelloWorldTests组中放置的是HelloWorld程序的单元测试代码。Frameworks放置HelloWorld代码所依赖的框架或库,Products组放置了编译后的工程。下面我们重点介绍HelloWorld组中的内容。
在HelloWorld组中共有两个类:AppDelegate和ViewController,以及一个组Supporting Files。 我们主要的编码工作就是在AppDelegate和ViewController这两个类中进行
AppDelegate是应用程序委托对象,它继承了UIResponder类,并实现了UIApplicationDelegate委托协议。UIResponder类可以使子类AppDelegate具有处理相应事件的能力,而UIApplicationDelegate委托协议使AppDelegate能够成为应用程序委托对象,这种对象能够响应应用程序的生命周期。相应地,AppDelegate的子类也可以实现这两个功能。
ViewController类继承自UIViewController类,它是视图控制器类,在工程中扮演着根视图和用户事件控制类的角色。
AppDelegate和ViewController类与main代码模块的主函数存在一种直接的调用关系
HelloWorld-Info.plistInfoPlist.stringsmain.m
工程属性描述文件,它的命名必须是“工程名+Info.plist”工程本地化的字符串文件
应用程序的入口程序文件,它不是一个类,其中只有一个main()主函数,应用的运行都是由此开始
HelloWorld-Prefix.pch 在这个文件中可以引用头文件,这样工程的其他文件就不需要引入了,它的命名必须是“工程名 + Prefix.pch”