[ UIApplication sharedApplication]返回UIApplication的一個(gè)單例,單例是全局的,唯一的。
實(shí)現(xiàn)代碼如下:
static UIApplication * application = nil;
+ (UIApplication*)shareApplication {
if (application == nil) {
application= [[UIApplication alloc]init];
}
return application;
}
在UIApplication中處理的系統(tǒng)事件時(shí),只需轉(zhuǎn)到_delegate這個(gè)類去處理,這個(gè)類對象就是應(yīng)用程序委托對象。我們可以從應(yīng)用程序的單例類對象中得到應(yīng)用程序委托的對象。 UIApplication 接收到所有的系統(tǒng)事件和生命周期事件時(shí),都會(huì)把事件傳遞給UIApplicationDelegate進(jìn)行處理,對于用戶輸入事件,則傳遞給相應(yīng)的目標(biāo)對象去處理。比如我們在應(yīng)用程序被來電等消息后,可以調(diào)用應(yīng)用程序委托類的 applicationWillResignAct ive()方法,這個(gè)方法在用戶鎖住屏幕時(shí),也會(huì)調(diào)用,與之相適應(yīng)的是應(yīng)用程序重新被用戶打開時(shí)的委托方法。另外常用的就是內(nèi)存不足的系統(tǒng)警告,此時(shí)會(huì)調(diào)用應(yīng)用程序委托類的applicationDidReceiveMem oryWarning()方法,然后我們就可以試著釋放一些內(nèi)存了。