2011-04-08 76 views
37

我每次向plist寫入任何東西時都使用[[NSUserDefaults standardUserDefaults] synchronize]。這是過度殺傷力?或者是否有這種不利影響?NSUserDefaults同步的最佳實踐

+0

我很確定它在程序「感覺」喜歡它時自動刷新它。我知道它有點模糊,但它有效。您應該考慮查看NSUserDefaultsController。 – alexy13 2011-04-08 21:19:22

回答

51

是的,它可能是矯枉過正,但在一個簡單的應用程序,你會注意到性能受到影響?如果您只是在基本的用戶交互(例如用戶選擇其設置)之後保存,則可能不會。調用更頻繁同步的好處是,如果您的應用程序可能會崩潰並且您保存的信息很重要,否則iOS會定期爲您保存。

+1

感謝您的洞察力。 – 2011-04-10 16:57:53

6

以週期性間隔自動調用的synchronize方法將內存中緩存與用戶的默認數據庫保持同步。

調用它經常可能會導致性能問題,但如果它是一個小的應用程序這不是矯枉過正(如已經提到的),或者如果你真的需要你的plist是最新的,在當前線程所做的更改或應用程序中某些其他線程中所做的更改。

因爲這個方法是每隔一段時間自動調用,如果你想更新用戶默認使用此方法僅如果你不能等待自動同步(例如,如果你的應用程序即將退出)或即使您沒有進行任何更改,磁盤上還有什麼

您可能會注意到的唯一不利影響可能是性能下降可以忽略不計。