Search code examples
objective-cioscocoansuserdefaultskeychain

Is there any advantage of having atomic property for saving in keychains/userdefaults?


For storing some values in NSUserDefaults / keychains is there any advantage of having atomic or non-atomic properties?


Solution

  • 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?