亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么時候以及為什么要使用NSUserDefaults的syncnize()方法?

什么時候以及為什么要使用NSUserDefaults的syncnize()方法?

牛魔王的故事 2019-10-21 13:15:53
因此,我看了關于NSUserDefaults的syncnize()方法的蘋果文檔。請參閱以下參考:https://developer.apple.com/reference/foundation/userdefaults/1414005-synchronize該頁面當前顯示為:因為此方法是定期自動調用的,所以僅當您無法等待自動同步時(例如,如果您的應用程序將要退出),或者您想要將用戶默認值更新為磁盤上的默認值時,才使用此方法。您尚未進行任何更改。但是,我仍然不明白的是什么時候應該調用此方法?例如,是否應在用戶每次更改應用程序設置時調用它?還是我應該相信后臺api能夠處理這個問題?內存中的設置更改后立即離開視圖是否會導致該更改丟失?此外,何時無法調用syncnize()導致用戶設置未正確更改?此外,調用此方法的成本(性能,內存或其他方面)是多少?我知道這涉及到磁盤讀/寫操作,但是這真的需要花很多精力在手機上嗎?
查看完整描述

3 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

如預期的那樣,已棄用,如Apple Doc中所述


同步()


等待對默認數據庫的所有未決異步更新并返回;此方法是不必要的,不應使用。


原始答案


synchronize打算提到被棄用這里


- 不建議使用sync,并且在以后的版本中將使用NS_DEPRECATED宏進行標記。


-synchronize阻塞調用線程,直到所有正在進行的設置操作完成為止。這不再是必需的。對-synchronize先前使用的替換取決于調用sync的意圖。如果您已同步…


—…在讀取之前,為了獲取更新的值:刪除同步調用


—…在編寫后通知另一個程序讀?。毫硪粋€程序可以使用KVO遵守默認值而無需通知—…在非應用程序(命令行工具,代理或守護程序)中退出之前:調用CFPreferencesAppSynchronize (kCFPreferencesCurrentApplication)


—…由于任何其他原因:刪除同步呼叫


查看完整回答
反對 回復 2019-10-21
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

Apple的文檔synchronize()已更新,現在顯示為:


等待對默認數據庫的所有未決異步更新并返回;此方法是不必要的,不應使用。


查看完整回答
反對 回復 2019-10-21
  • 3 回答
  • 0 關注
  • 1066 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號