0
我遇到了一些奇怪的NSUserDefaults行爲。我保存我的數據,然後同步,然後執行NSUserDefaults的NSlog以確保其保存。數據顯示爲從NSlog中正確保存,但是當我完全關閉應用程序(雙擊主頁按鈕並殺死應用程序)時,它重新啓動時值沒有改變。更奇怪的是,如果我通過保存NSUserDefaults重複代碼幾次,殺死應用程序,重新加載NSUserDefaults,有時它會正確保存,而其他時間則不會。奇怪的iPhone SDK NSUserDefaults行爲
我看過這個帖子Strange NSUserDefaults behavior但我打電話同步,所以我不認爲這是我的問題。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"MyString" forKey:@"testString"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
任何幫助,非常感謝。
真正讓我困惑的是,如果standardUserDefaults的NSLog顯示數據已保存,爲什麼它不會在應用程序被殺死之後呢?
感謝
UPDATE
貌似問題是在可變和不可變的數組我被保存到一個NSUserDefaults的查詢股價。我在檢索數據時使用了mutablecopy,似乎解決了這個問題。
Synchronize返回一個布爾值。你爲什麼不記錄下來,看看它是否快樂。 BOOL結果= [prefs synchronize]; NSLog(@「同步結果=%d」,結果); – danh 2013-02-24 21:21:48