因此,我看了关于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)
—…由于任何其他原因:删除同步呼叫
添加回答
举报
0/150
提交
取消