一、应用程序层次结构:
二、Mac系统的Cocoa 框架与iOS的CocoaTouch框架:
Cocoa由Foundation框架和AppKit框架等构成。
Cocoa Touch派生自Cocoa框架,区别在于UIKit替代了AppKit,去掉了不用的类如打印相关等,增加了移动设备专用的类如加速器和触摸屏处理。
三、常识
1、每个iPhone应用程序都有且只有一个UIApplication实例。
2、开发工具为Xcode,构建视图的工具为Interface Builder。
四、设计模式
1、委托(代理?)
定义:是一个对象周期性地向被指定为其委托的另一个对象发送消息,向其请求输入或者通知某件事情正在发生。该模式可替换类继承来对可复用对象的功能进行扩展。为了建立并管理视图,委托会创建一个控制器实例。
解释:自己写的委托类,将消息发送给UIApplication实例,后者在后台处理这些任务。
2、协议
委托方法通常会集中在一起形成一份协议。 一份协议基本上就是一个方法的列表。如果一个类遵循某个协议,则它要保证实现协议所要求的方法(有些方法可选择实现与否)。委托协议规定了一个对象可以发送给委托的所有消息。
3、MVC
模型:保存应用数据的类。如自己设计的类或使用CoreData来构建数据模型。
比如:在一款游戏中,SpaceShips和Rockets是模型对象,在一个用于生产的应用中,ToDo项和Contacts是模型对象,在一个绘画应用中,Circles或Squares是模型对象。
视图:窗口、控件等视图元素。
控制器:将M和V绑定在一起的逻辑的类,可以继承自UIViewController。
4、目标-动作
目标-动作机制允许一个控件对象(诸如按键或滑动条) 向另外一个对象发送一条消息(即动作),以之作为对某个用户事件(例如一个点击事件或者一个敲击事件)的响应。接收到消息的对象则可以对消息进行解释,并将其作为一个特定于应用程序的指令进行处理。
最常见的如按钮被按下,它会给控制器发通知。
五、iPhone项目的目录结构
通常项目会在Xcode(本文版本4.2)窗口左边Groups & Files下。
它包含5个子文件夹:
Classes:我们自己写的类放在这里,可以再建子文件夹来组织代码。
Supporting Files:
Pch文件:precompiledheader,预编译的头文件。
Main.m:对的,大名鼎鼎的main函数就在这里了。
I nfo.plist:Property List,应用程序相关信息的属性列表。 plist 是一个 XML 结构的列表。Key 与String 是成对出现。 你可以在这里 直接编辑 plsit,修改、添加或删除 关键字。
Frameworks:项目引入的库。
Products:项目编译后生成的应用程序。
六、Interface Builder
Interface Builder的历史要追溯到1988年,现在它支持两种文件格式:老的.nib格式和新的.xib格式,这两种格式被统称为nib文件并被官方使用。
Nib文件中会看到两个属性:
File’s Owner:顾名思义,它表示从磁盘加载nib文件的对象。
First Responder:第一响应者就是用户正在交互的对象。
这两个属性虽然带来了一下困惑和混乱,但它们的初衷是让程序员更方便轻松的编程。在实践中你会慢慢发现它们的优点。