我正在循环中进行计算密集型操作(数百次用于迭代公式)。在每个循环中,值直接从nsuserdefaults获取并计算并保存回来。我的问题是我应该每次写入时使用-synchronize方法nsuserdefaults?.i认为不使用这种方法。我的应用程序运行得更快。使用同步是否会减慢计算量
答案 0 :(得分:2)
使用同步会减慢计算速度吗?
是的,绝对的。 synchronize
将当前用户默认值写入磁盘。
我每次写入nsuserdefaults时都应该使用-synchronize方法吗?
绝对不是。如果您有一个长循环,您正在更改用户默认值,则值将保存在内存中。它不会弄乱你的计算。完成循环后,只需要保存到磁盘。
synchronize
通常会完成:
在你的情况下,在长循环之后,你想要出于原因3。
每次在循环中执行此操作时,您只是不必要地将值写入闪存,这可能会立即覆盖。
答案 1 :(得分:1)
没有!你不应该。考虑synchronize
中的applicationWillTerminate
。
答案 2 :(得分:1)
没有。从理论上讲,你根本不需要调用它,它将为你完成(它“定期自动调用”)。实际上,在applicationWillResignActive:
中这样做是个好主意。