发现百度上搜这个属性的文章语焉不详,或者干脆就是错的。
atomic 保证值从 getter/setter 中获取
即线程A正在调用getter的过程中,线程B调用了这个值的setter,线程A将得到一个autorelease的对象。即线程A保证能够得到一个值。
nonatomic则没有这个保证,所以nonatomic可能比atomic更快。
atomic并非线程安全的,线程A取一个atomic属性,当前值a1, 此时线程B,C同时调用这个属性的setter, 假设B设置为a2, C设置为a3,此时A获取的值可能是a1, a2, a3中任意一个。