property是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。
如何使用?
用法如:@property (attribute1,attribute2) float value;
这些attribute包括:
readonly-只读,只能读取而不能设定值(不能用setXXXX的函式)。
readwrite-可读可写(默认)。
assign-在设值时替换新旧变量(默认)。
retain-在设值时retain新的变量,release旧变量。
copy-在设值时copy一份新变量,release旧变量。
nonatomic-默认為atomic。
strong - 在引用计数环境下,默认为strong,与retain作用相同;
从5.0系统后引入了weak,作用与assign相似,不过当所指向对象引用为0时,自动置为nil。
前两个只是简单的设定变量的可读写性。
assign只是简单的替换变量,通常运用在标量类型上,例如:NSInterger和CGRect,
或者(在引用计数环境)为那些你不拥有的对象,例如:delegates。
在垃圾收集环境下retain 和 assign实际上是相同的。
它的产生的setter代码內容类似:
- (void)setValue:(float)newValue {
value = newValue;
}
还有一点非常要注意的就是,在使用property时一定要在前面带上self(如:self.xxx),如果你不这样做,容易造成内存泄漏。
Object-c @property的使用方法,布布扣,bubuko.com
原文地址:http://blog.csdn.net/gyz413977349/article/details/38580311