For storing some values in NSUserDefaults / keychains is there any advantage of having atomic or non-atomic properties?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The difference between "atomic" and "non-atomic" is that atomic requires that all of the data must be successfully written while "non-atomic" means "write as much as possible" (i.e. not necessarily all of it).
So for many things (e.g. small bits of data), there's not much of a practical difference between non-atomic or atomic.
But for larger blocks of data, then non-atomic vs. atomic actually makes a difference. Do you need to have the data that's written to be 100% perfect and complete, or can your app handle just some of whatever has been written to default or the keychain?
回答2:
Yes,
If you are using Atomic, it is thread safe.