我在NSUserDefaults中將用戶的用戶配置文件圖片ID保存爲字符串,例如: @ 「12」。當我這樣做時,我立即調用同步方法。NSUserDefaults有時會返回錯誤的值
當我從NSUserDefaults中讀取此值時,它可能會在99%的時間內返回@「12」。但有時候,它會返回一個不同的值(由於事件的稀少性,我找不到這個值),但是懷疑它是零或者是某個默認值(?))。
我用寫的代碼/讀取很簡單:
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:@"12" forKey:@"photoID"];
[userDefaults synchronize];
NSString* photoID=[userDefaults objectForKey:@"photoID"];
我知道有時返回的值不正確,因爲在當時的應用程序的行爲如同值不同(即用戶的聯繫人通知個人資料圖片已更改)。
發生這種情況時,下一次調用objectForKey將返回正確的值,因此用戶聯繫人會收到另一個通知,該配置文件圖片已再次發生更改。
我只需要在更改默認值時調用同步,這並不常見,所以不用擔心。我懷疑刪除它會改變什麼,問題是需要幾天才能找出錯誤是否再次發生。我希望聽到某個面臨類似問題的人的意見,即事情工作正常的99%以上,但有時不會。 – Georges
不是所有的錯誤都可以很容易地重現。如果我知道行爲或情況,我可能會修復這個錯誤。而我正在尋找的是一個經歷過這個問題的人。我願意嘗試,但我很確定調用同步不會導致錯誤。 – Georges
我想你是對的......足夠公平。 – Georges