main例程只做三件事:
1.创建一一个自动释放池,
2.调用UIApplicationMain函数,
3.释放自动释放池。
所以除了少数的例外, 你永远不应该改变这个函数的实现。
请注意:自动释放池用于内存管理,它是Cocoa的一种机制,用于延缓释放具有一定功能的代码块中创建的对象。
程序核心代码是UIApplicationMain函数,它接收四个参数,除了传给main函数的argc和argv之外,该函数还需要两个字符串参数,用于标识应用程序的首要类(即应用程序对象所属的类)和应用程序委托类。如果首要类字符串的值为nil, UIKit就缺省使用UIApplication类;如果应用程序委托类为nil,UIKit就会将应用程序主nib文 件(针对通过Xcode模板创建的应用程序)中的某个对象假定为应用程序的委托对象。如果将这些参数设置为非nil值,则在应用程序启动时, UIApplicationMain函数会创建一个与传入值相对应的类实例,并将它用于既定的目的。
因此,如果你的应用程序使用了UIApplication类的定制子类(这种做法是不推荐的),就需要在第三个参数指定该定制类的类名。
UIApplicationMain函数永远不会返回 那么导致return 永远无法执行 程序永远无法终止 它会一直等待用户的操作 点击、触摸 操作
2.建立一个事件循环来捕捉处理用户的行为
什么是UIApplication?
1.UIApplication对象是应用程序的象征
2.每一个应用都有自己的UIApplication对象,而且是单例的
3.通过[UIApplication sharedApplication]可以获得这个单例对象
4.一个iOS程序启动后创建的第一个对象就是UIApplication对象
5.利用UIApplication对象,能进行一些应用级别的操作