欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

深入iPhone开发:应用程序核心探秘(1)(2)

来源: 开发者 投稿于  被查看 18490 次 评论:207

应用程序代理

监控你的应用程序的高层行为是应用程序代理对象的职责,也就是你提供的自定义对象。代理是用来避免子类化复杂UIKit对象的一个机制,比如缺省的UIApplication对象。和使用子类化以及重写父类方法相反,你无需修改就可以使用这个复杂对象而把自定义的代码放在代理类中。当感兴趣的事件发生时,这个复杂对象发送消息给你的代理对象。你可以使用这些“钩子”来执行自定义代码并实现你需要的行为。

重要: 这个代理设计模式是用来节约你创建应用程序的时间和精力的。所以理解这个模式很重要。想对iPhone应用程序采用的关键设计模式有个总体了解,请参见“Fundamental Design Patterns.” 关于代理和其他UIKit设计模式的更详细的描述,请参见Cocoa Fundamentals Guide.

应用程序代理对象负责处理一些关键的系统消息而且在每个iPhone应用程序中必须存在。这个对象可以是任何你喜欢的类实例,只要它采用了UIApplicationDelegate 协议。 这个协议的方法定义了应用程序生命周期挂载的钩子,同时也是你实现自定义行为的途径。尽管你不需要实现所有的方法,每个应用程序代理应该实现在“Handling Critical Application Tasks.”中描述的方法。

主Nib文件

另外一个初始化时期发生的任务是加载应用程序的主nib文件。如果应用程序信息property list (Info.plist) 文件包含了NSMainNibFile关键值, 作为初始化过程的一部分,UIApplication 对象加载这个关键值指定的nib文件。主nib文件是为你自动加载的唯一nib文件;但是,你可以按照需要加载其他的nib文件。

Nib 文件是基于磁盘的资源文件,保存了一个或多个对象的一份快照。 一个iPhone应用程序的主nib文件通常包含一个窗口对象,应用程序代理对象,和可能一个或多个其他管理这个窗口的关键对象。加载一个nib文件重新构成nib文件中的对象,从它的磁盘表示转换成一个实际的可以被你的应用程序操作的内存版本。

从nib文件中加载的对象和你编程序创建的对象没有区别。不过,对于用户界面而言,图形化的创建和用户界面相关联的对象并存放在nib文件中使用Interface Builder)比编程实现要简便直观得多。


用户评论