属性比使用手动构建的方法更有优势,包括点表示法和内存管理。
例如self.colors = [NSArray arrayWithObjects:@"gray", @"black"];将自动保留数组。
self.colors = nil; 将自动释放内存。
Property的Attributes
1、readwrite 和 readonly
其中,readwrite是默认的,使用readonly时,将没有set方法。
2、atomic 和 nonatomic
其中,atomic是默认的,表示set方法是原子操作。
这在多线程中是必要的,但是在单线程程序中,原子操作不是必需的,使用的话反而会影响效率。
3、assig、retain 和 copy
其中,assign是默认的。使用assign时,set方法只是简单的赋值。
retain,释放旧值,并retain新值。在使用垃圾回收器的时候,retain和assign是一样的。
copy,创建新值的拷贝。常用于properties是字符串的时候。