Bal*_*ran 13 nsuserdefaults ios
请任何人,帮我:在调用NSUserDefaults的synchronize()方法强制?如果我不打电话,会发生什么?没有它我的应用程序工作正常.
luk*_*302 14
来自文档:
因为此方法是定期自动调用的,所以只有在您无法等待自动同步时(例如,如果您的应用程序即将退出)或者您希望将用户默认值更新为磁盘上的内容,请使用此方法你没有做任何改变.
这意味着如果你在某些东西被写入默认值后立即杀死应用程序而没有定期间隔捕获它,它将会丢失.你可能没有在写入事件后立即杀死应用程序,这就是为什么你的应用程序似乎到目前为止工作正常.
小智 5
通常它工作得很好,你只需要在特殊情况下使用它,例如当应用程序在写入 NSUserDefaults 后直接关闭时。所以你可以简单地将synchronize方法添加到相应的AppDelegate-method中。
正如其他人所说,您通常根本不需要调用同步。
通常系统会为您调用它,以便写入您的默认更改。
然而,在使用 Xcode 时,通过按命令句点或单击停止按钮来终止应用程序是很常见的。在这种情况下,它会在没有警告的情况下终止应用程序,并且您的用户默认更改很可能不会被写出,并且会丢失。
这可能是好事也可能是坏事,具体取决于您想要什么。这确实令人困惑。
您可以通过在每次进行更改时或在某个时间间隔调用同步来“修复”它。然而,这确实会减慢您的应用程序的速度并增加其电源需求(两者都非常小)。如果您处于循环中,将更改写入 10,000 个服务器或核心数据记录,并且在每次传递后更改用户默认值,然后在之后调用同步每一项都可能对应用程序速度和电池寿命产生可衡量的影响。然而,在大多数情况下,您不太可能注意到其中的差异。
| 归档时间: |
|
| 查看次数: |
6105 次 |
| 最近记录: |