在cocoa编程当中,比较常用的一块,就是属性设置,就是自动为变量添加setter和getter方法,这些方法的添加,涉及到了属性的设置,那么这些属性的含义如何哪?
首先,属性的定义格式:@property (attributes) type name
对于property 的取值有,retain,copy,assign,atomic,nonatomic,read,readwrite,readonly等等。往往另一迷惑的是这些定义的含义。
assign,简单来说,是非OC对象赋值。
retain, 是OC对象的赋值,即retain级数会增加。
copy,通常对字符串生效,完成一个字符串的拷贝。
atomic,这个可以与上述的三个属性共同使用,他是描述该变量是否支持多线程的同步访问,如果选择了atomic 那么就是说,系统会自动的创建lock锁,锁定变量。