2008-12-15 93 views
11

當我的應用程序在iPhone模擬器運行時,委託方法iPhone模擬器和applicationWillTerminate()

- (void)applicationWillTerminate:(UIApplication *)application 

只叫我第一次打在iPhone模擬器的home鍵。

在主頁按鈕被按下並且應用程序再次啓動後,點擊主頁按鈕不會調用委託方法。

這是怎麼回事?我誤解了一些根本性的東西嗎?

回答

24

我懷疑它是被調用的,但是你會感到困惑,因爲在你點擊Simulator中的Home按鈕之後,你已經結束了Xcode中的當前會話。您的applicationWillTerminate:方法中可能有NSLog,是的?一旦你點擊主頁按鈕,NSLog就不再出現在Xcode的運行控制檯中。如果你打開/Applications/Console.app我希望他們會出現在那裏。

+0

是的你是對的。第一次返回到主屏幕後,不會出現對NSLog()的調用。然而,從代理調用的所有其他函數調用繼續按照慣例運行。謝謝! – firstresponder 2008-12-15 11:34:07

4
- (void)applicationWillTerminate:(UIApplication *)application 

當應用程序「終止」時被調用。 如果您使用的是iOS,那麼當您按下主屏幕按鈕時,應用程序將不會終止,除非您已禁用了您應用程序的多任務功能,或者用戶沒有「支持多任務」設備。

- (void)applicationDidEnterBackground { 

現在在用戶按下home鍵時使用。除非(正如我之前所說),您已禁用多任務處理您的應用程序,或者用戶沒有「支持多任務處理」設備。