3

我的[NSUserDefaults standardUserDefaults]未保存。我關閉應用程序並重新啓動它的所有內容都會恢復。我沒有方便的iOS設備,所以我不確定這是否會在設備上發生,但其他應用程序都沒有在模擬器中這樣做,這導致我相信我的代碼有問題。我不知道我應該在這裏包含哪部分代碼,它只是簡單地在nsuserdefaults中添加/修改鍵,正如我所說的,它在應用程序期間運行良好,但不是在重新啓動後運行...NSUserDefaults沒有被保存在模擬器中?

我知道我可以撥打synchronize,但蘋果建議反對它,並說我應該只能打電話給它,如果它是必須的。

可能會出現什麼問題? 謝謝。

+1

你爲什麼不嘗試調用同步只是爲了看看是否可行?你也可以檢查它的返回值的錯誤... – sergio 2011-05-17 15:47:40

+0

嗨, 我只是在applicationwillterminate方法,但不工作.. :( – user635064 2011-05-17 15:59:38

+0

嘗試做'applicationDidEnterBackground:',如我在我的答案建議請參閱下面的更多細節:http://stackoverflow.com/questions/3139588/applicationwillterminate-in-ios-4-0 – sergio 2011-05-17 16:11:01

回答

8

您的進程可能會被不正確地終止,以至於NSUserDefaults沒有機會被存儲。另請參閱this和大多數this

在第二後我鏈接到的建議是還呼籲synchronizeapplicationDidEnterBackground:

記住,大多數常常阻止它在Xcode終止您的應用程序不保存用戶的默認值。

+0

塞爾吉奧是對的。如果你希望你的值在退出時保存在模擬器中,你可以**調用'synchronize'。 – Shaolo 2013-04-16 03:06:04

0

您是從Xcode/debugger重新啓動嗎?嘗試首先使用主頁按鈕將應用程序發送到後臺。我認爲框架會自動同步。

+0

嗨, 感謝您的回覆,我發送到背景,然後雙擊主頁按鈕並關閉應用程序然後,當我從模擬器再次啓動它,它崩潰了,但在XCode,如果我建立 - >運行,它不會崩潰,但我的nsuserdefaults不會保存...嗯 – user635064 2011-05-17 15:50:04

0

我無法理解有關辦法,正在訪問的NSUserDefault,您使用sharedDefaultsNSUserDefault一點兒也不在蘋果文檔存在靜態函數

使用如下訪問NSUserDefault

[NSUserDefaults standardUserDefaults]; 

欲瞭解更多閱讀使用NSUserDefault的博客文章。

iPhone Programming Tutorial – Saving/Retrieving Data Using NSUserDefaults

+0

對不起,這就是我的意思。修正了我的問題。 – user635064 2011-05-17 15:55:56

+0

@ user635064 :檢查NSUserDefault的博客教程鏈接。 – Jhaliya 2011-05-17 15:58:07

+0

我知道如何使用NSUserDefaults ..這是一個錯誤,我不是複製粘貼我的代碼,我認爲它是sharedDefaults ...感謝您的幫助。 – user635064 2011-05-17 15:58:56