我有一個應用程序使用幾個不同的用戶默認值,需要儘快應用程序加載使用。其中一個負責將地圖視圖放大到用戶位置。加載應用程序時發生NSUserDefaults奇怪的事情
我遇到的問題是,當我加載用戶默認值時,它似乎認爲它們是空的,直到我通過設置應用程序更改它們。
發生了什麼事嗎?我正在使用iOS 5,並不確定這是否會對其產生影響。這真的很煩人,因爲我的應用程序依賴於加載後可用的數據。
注意:在更改/重新選擇設置視圖中的值後,它工作得非常好。
我有一個應用程序使用幾個不同的用戶默認值,需要儘快應用程序加載使用。其中一個負責將地圖視圖放大到用戶位置。加載應用程序時發生NSUserDefaults奇怪的事情
我遇到的問題是,當我加載用戶默認值時,它似乎認爲它們是空的,直到我通過設置應用程序更改它們。
發生了什麼事嗎?我正在使用iOS 5,並不確定這是否會對其產生影響。這真的很煩人,因爲我的應用程序依賴於加載後可用的數據。
注意:在更改/重新選擇設置視圖中的值後,它工作得非常好。
確保您的設定值後,調用synchronize
:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"someKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
編輯回答評論:
從文檔-registerDefaults:
:
登記的內容域不寫入磁盤; 每當您的應用程序啓動時,您需要調用此方法。您可以在應用程序的資源目錄中放置一個plist文件,並調用registerDefaults:您從該文件讀入的內容。
所以,在-applicationDidFinishLaunching:
,你可以這樣註冊Root.plist
默認:
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Root" ofType:@"plist"]]];
這個問題在我第一次加載應用程序時就已經出現了。例如,假設我只安裝了它,所以我還沒有選擇任何設置。這是沒有采取我在我的Root.plist –
@ JonW09中設置的默認值檢查我的eedits的問題。 – chown
感謝您的幫助 –
添加一些代碼,請。 – chown