线程
线程相关控制合成方法定义时是否
atomic/nonatomic
线程安全,默认为atomic,虽然atomic能保证对象数据的安全完整性,但atomic的线程安全会造成性能下降,大多数情况下,都会使用nonatomic来提高访问性能
@property (atomic) int age;
@property (atomic) UIColor *color;
合成方法:
在atomic修饰下,会使用线程同步技术,此时setter和getter要不全部依赖@synthesize合成,要不全部显式定义,如果一个依赖@synthesize合成,一个开发者显式定义,就会破坏线程同步技术,编译器会产生警告,在readonly情况下,getter就是全部,使用@synthesize合成或开发者显式定义都可以