property大概是objc中唯一的元编程机制,用来快速地生成类的数据成员的get和set方法。本文谈谈我对property的一些使用心得。
1)retain,copy和assign:
retain的作用在于生成set方法时该数据成员(一定是objc对象)的引用计数+1,通常用于除NSString类型以外的objc对象。如
1 2 3 4 5 |
- (void)setMember:(Member *)member { [member_ release]; member_ = [member retain]; } |
一个常见的例外是delegate的set方法通常设为assign,这是为了避免循环引用造成的引用计数无法归0,然后内存泄漏——考虑一个view的delegate为该view所在controller的情况。
NSString类的对象的set方法设为copy,字符串对象需要深拷贝。 阅读全文 >>