Cocoa的Foundation框架包含了基础数据类、基础工具类等主要部分,几乎所有的Cocoa类都是从一个根类对象NSObject继承来的。本次主要说明应用程序层的事件委托与应用程序生命周期。
iPhone开发应用程序委托是本文要介绍的内容,主要讲解的是应用程序的委托。iPhone的软件栈有好几层组成,而应用程序是位于栈里面最高的抽象层,系统核心服务(操作系统层)则是位于最底层的。这中间还有媒体层、Cocoa
Touch层、核心服务层等等 ,但一般在开发应用程序的过程中,与我们主要打交道的是GUI框架和Cocoa Touch层所提供的面向对象抽象。
Cocoa的Foundation框架包含了基础数据类、基础工具类等主要部分,几乎所有的Cocoa类都是从一个根类对象NSObject继承来的。本次主要说明应用程序层的事件委托与应用程序生命周期。
为了说明应用程序,从main开始。
- intmain(intargc,char*argv[]}{
-
NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];
-
intretVal=UIApplicationMain(argc,argv,nil,nil);
- [poolrelease];
- returnretVal;
- }
这是一个典型的C风格主函数,其功能核心部分在于调用了UIApplicationMain函数来启动事件循环并开始运行应用程序,注意主函数的第三个以及第四个参数,这两个参数指明了应用程序的主类和应用程序委托。而这个委托就是一个处理应用程序生命周期管理事件的类。如果指定是nil,则被告知需要从一个nib文件来装入这些类对象。在Info.plist文件中,指定了一个nib文件,默认情况下是MainWindow.xib,接下来的事情就是 UIkit在xib文件中寻找应用的委托了。
在该nib文件(用IB打开)中,可以看到有几个图标,其中有一个图标是应用程序委托的图标。其它的好像是视图控制器图标以及一个窗口图标。另外有File's Owner (拥有当前nib文件的对象)以及First Responser(指示该组件能够第一个接收用户的输入)两个图标。
那么应用程序是如何将该委托对象与应用程序相连的呢?
iPhone应用程序都有一个窗口对象,应用程序委托中有两个连接,一个连接到该nib文件的窗口对象,一个连接到该nib文件的视图控制器上。一般我们可以通过定制视图控制器的行为来控制我们的显示。
整个过程就是这样的了。系统先调用main函数,然后main函数调用UIAplicationMain函数,这个函数利用Info.plist文件来寻找应用程序的主nib文件,在该文件中找到应用程序的一个委托,这个委托又有两个连接,可以接连到一个窗口和视图控制器。然后这个视图控制器又可以定制我们的显示行为(可以用代码定制也可以用nib文件定制),这就是启动应用程序的整个过程。
接下来,委托可以做什么呢?
应用程序的生命周期由生命周期方法控制,这些生命周期方法与应用委托相关的,当然,也是与由它装入的视图控制器相关的。比如,应用程序刚刚启动完毕,调用委托的applicationDidFinishLaunching:方法。
为什么需要委托呢?
一个简单的想法是,一个对象能够有一个单一的委托对象,可以在某些事件发生的时候来调用该委托对象的事件方法。委托对象就像一个职业能手一样,它总是说:没事,当这个事件发生的时候,你告诉我就好了。而另一个接收事件的对象则有很多其它的业务事情需要处理:我实在没时间处理这些事情,我也不知道我应该要做什么,所以我交给你吧。
委托对象由UIApplicationDelegate所定义,因此对于一个类,如果想成为应用程序的委托,一定需要在头文件中声明它实现这个协议,然后在类的实现中,实现所有的必须方法。
小结:深度解析iPhone开发应用程序委托的内容介绍完了,希望通过本文的学习能对你有所帮助!
转自:http://mobile.51cto.com/iphone-283174.htm
分享到:
相关推荐
iPhone应用程序编程指南-中文版 pdf iPhone应用程序编程指南-中文版 pdf iPhone应用程序编程指南-中文版 pdf
资源名称:iOS(iPhone)应用程序开发入门视频教程(35讲)资源目录:【】ios(iPhone)应用程序开发入门视频教程:第10讲多视图应用程序【】ios(iPhone)应用程序开发入门视频教程:第11讲高级UI控件【】ios(iPhone)应用...
开发iPhone应用程序.pdf [iPhone开发书籍大全20][1]_Learning_iPhone_Programming(O'Reilly_2010-3).pdf
开发ios必须的书本之一,还有两本是《iPhone开发基础教程_2009.04_(美)Dave Mark, Jeff LaMarche著》 和《iPhone应用程序开发指南》,希望对你有帮助。
截至 20100209 最新版本《iPhone 应用程序开发全教程》。英文名: Beginning iPhone 3 Development Exploring the iPhone SDK.pdf,作者 Dave Mark & Jeff LaMarche。 内容预览: Prelims Contents at a Glance ...
一个iphone聊天应用程序,服务端用的php搭建,实现两者之间的通信。
《软件创富密码:iPhone应用程序开发攻略之深入浅出Objective-C2.0(适用于ios4)》系统地介绍了关于使用Objective-C2.0开发iPhone应用程序的基础知识,涵盖各种开发工具的操作技巧、框架(Framework)内部的工作原理...
《软件创富密码:iPhone应用程序开发攻略之深入浅出Objective-C2.0(适用于ios4)》系统地介绍了关于使用Objective-C2.0开发iPhone应用程序的基础知识,涵盖各种开发工具的操作技巧、框架(Framework)内部的工作原理...
《iPhone应用程序开发攻略之iPhone特色传感器应用》PDF高清扫描版电子书
AppStore ——iphoneSDK 应用开发程序 全书的源代码
iPhone应用程序编程指南iPhone应用程序编程指南iPhone应用程序编程指南
开发iPhone应用程序基本步骤(英文)
iPhone应用程序开发指南.pdf.iPhone应用程序开发指南.pdf.
App Engine 和 iPhone 开发综合在一起就形成了一种功能强大的工具,可用于编写和原型化移动应用程序。这个示例 Web 应用程序支持着一个小型的 iPhone 应用程序 Sonnet,这个小程序可从 Apple 的 Application Store ...
XamarinInstaller使用C#/CSharp在.NET开发环境上开发Android应用程序及IOS应用程序的插件及开发说明,C#程序员们的福音,我们的热爱,分享 要求安装了VS2010或VS2012 注意如果只需要开发Android应用程序,仅需安装 mono...
AppStore掘金iPhone SDK应用程序开发
iphone开发之xml解析iphone开发之xml解析iphone开发之xml解析iphone开发之xml解析iphone开发之xml解析
①-iphone应用程序开发-iPhoneAppProgrammingGuide|iphone开发
用Eclipse 开发 iPhone Web 应用程序.doc,回去试试