For storing some values in NSUserDefaults / keychains is there any advantage of having atomic or non-atomic properties?
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?