2010-07-20 53 views
0

我想問一下,每當用戶完全退出應用程序時調用了哪種方法。關於退出應用程序的問題(保存數據和加載數據)

我的意思是完全退出應用程序後,用戶點擊主頁按鈕,應用程序實際上是在後臺運行,但每當用戶雙擊主頁按鈕,然後點擊並按住應用程序圖標,然後點擊RED MINUS標誌退出應用程序。

我試圖保存我的數據,每當應用程序轉到後臺並加載數據時,應用程序回到活動(前景)。只要我沒有完全退出應用程序,它就會工作。

如果我通過點擊紅色減號退出應用程序並重新啓動應用程序,我保存的所有數據都消失了嗎?奇怪的情況是,它有時會被保存並且可以被加載,但大多數情況下它不會被保存。

我有我的保存方法仔細檢查,並嘗試NSLog它,我得到的所有數據保存,但不知道爲什麼它不能加載後,用戶通過點擊紅色減號退出應用程序。

任何人都知道我的應用程序會發生什麼?順便說一下,我正在使用NSUserDefaults來保存我的數據並加載我的數據。

[appDefaults setObject:object objectForKey:@「key」]; [appDefaults objectForKey:@「key」];

回答

0

NSUserDefaults保存您定期給出的值,而不一定是在應用程序終止的時候。要確保將設置寫入磁盤,請在-applicationWillTerminate:的默認對象上調用-synchronize方法。

+0

只要我的保存方法被調用,我可以調用-synchronize方法嗎?內存使用量很大? – Birdkingz 2010-07-20 16:39:31

+0

除非您將大量數據存儲在默認值中,否則-synchronize應該幾乎是立即生效。儘管如此,你並不需要一直這樣稱呼它。當您的應用程序正在運行時,默認值會緩存在內存中。 – 2010-07-20 16:47:31

1

爲什麼要等到應用程序退出才能保存數據?爲什麼不盡快保存它?

但是,如果必須在退出前保存數據,請使用:-[<UIApplicationDelegate> applicationWillTerminate:]方法。

+0

好吧,我已經改變了它,現在只要用戶插入新數據,它就會保存數據:D – Birdkingz 2010-07-20 16:40:06