iOS中,类的属性property可以有若干个修饰词,对应不同的属性行为。
@property (readonly) NSString *readonly; // 只读,不可修改 @property (readwrite) NSString *readwrite; // 可读可写,默认 @property (nonatomic) NSString *nonatomic; // 非原子操作,更快 @property (atomic) NSString *atomic; // 原子操作,默认 @property (strong) NSString *strong; // 强引用,默认 @property (weak) NSString *weak; // 弱引用,不持有对象 // ARC 禁止使用retain ,与strong 一样 //@property (retain) NSString *retain; @property (assign) NSString *assign; // 用于赋值,默认 @property (copy) NSString *copys; // copy属性表示深复制,完全拷贝变量,产生新的指针,没有copy属性的话是浅复制,只复制变量指针,默认是浅复制
还有一些特殊的使用:
// 将getter方法更名为isFinished @property (readonly,getter=isFinished) BOOL finished;
// 自动生成getter/setter方法时,变量更名为_myFinished @synthesize finished = _myFinished;