IOS学习笔记1

应用程序的生命周期





主程序:

在iPhone应用程序中,使用的主要功能是只有最低限度。大部分的实际工作需要由UIApplicationMain处理函数运行应用程序。因此,当你开始一个新的在Xcode中应用程序项目,每个项目模板提供了一个实现的主要标准功能类似的“处理关键的应用程序的任务。“

主程序只做三件事: 生成自动创建一个池,它调用UIApplicationMain,释放自动释放池。很少有例外,你不应该去改变这个函数的实现。

#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

UIApplicationMain函数需要四个参数来初始化应用程序。虽然你不应该改变参数传递的默认值,但也要说明这些参数启动应用程序的目的。除了argv和 argv参数传递给main,这个函数接受两个字符串参数,一个识别的主要类和应用程序委托的类。如果主要类字符串是nil,UIKit默认使用UIApplication类。如果应用程序委托的类是nil,UIKit假定应用程序委托的对象从你加载应用程序的主nib文件(这是构建的应用程序使用Xcode模板)。 如果您的应用程序UIApplication使用一个自定义的子类(不推荐,但肯定有可能),你在第三个参数指定您的自定义类的名字

应用程序委托:

UIApplicationDelegate

  监控应用程序的高级行为负责应用程序委托对象, 提供一个自定义对象。代表是一种机制,以免子类化复杂,UIApplication UIKit对象,如默认对象。而不是子类重写方法,   你使用复杂对象修改的,把你的委托对象内部的自定义代码。当事件发生时,复杂的对象发送消息到你的委托对象。您可以使用这些“钩子” 执行您的自定义代码和实现所需要的行为。
应用程序的委托对象负责处理几个关键系统消息,它必须出现在每一个iPhone应用程序。对象可以是你喜欢的任何类的一个实例,只要采用UIApplicationDelegate协议。此协议定义钩子的方法到应用程序生命周期和你的方式实现自定义行为。尽管你不需要实现所有的方法,每一个应用程序委托都应该实现”中描述的方法处理至关重要应用程序任务”


主Nib文件

  另一个发生在初始化时的任务是应用程序的主nib文件的加载。如果应用程序的  信息属性列表(Info.plist)文件包含NSMainNibFile键,UIApplication对象  加载指定的nib文件,关键的初始化过程。主要的nib文件是唯一的nib文件  为您自动加载;然而,您可以根据需要加载额外的nib文件之后。
  Nib文件是基于磁盘资源文件,存储一个或多个对象的一个快照。主要的 iPhone应用程序的nib文件通常包含一个窗口对象,应用程序委托对象,也许一个或其他关键对象来管理窗口。加载nib文件将重建nib文件中的对象, 将每个对象从磁盘上表示一个实际内存版本可以 通过您的应用程序操纵。从nib文件加载的对象与以编程方式创建对象没有区别。对于用户界面,然而,它是更方便的创建与用户相关联的 图形化界面(使用界面构建器应用程序)对象,在nib文件中存储它们而不是 以编程方式创建它们。

事件处理周期
  UIApplicationMain函数初始化应用程序后,启动基础设施管理应用程序的事件和绘图周期,作为用户与之交互  一个设备,iPhone操作系统检测触摸事件,同时把它们放置在应用程序的事件队列。UIApplication对象把每个事件从这个队列的顶部拿出,把它交给合适的对象处理。例如,一个触摸事件发生在一个按钮, UIApplication将会把它送到相应的按钮对象。事件也可以间接地传递给控制器对象和其他对象来处理触摸事件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值