2-成员属性:
readonly:不指定readonly,默认合成getter和setter方法。外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全性。相当于私有成员?
assign:表示只进行简单的赋值,不会发送retain消息。
retain:会向旧值发送release消息,向新值发送retain消息。
copy:向旧值发release消息,向新值发送copy消息。
3-引用计数特殊情况:
NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。
1)readwrite:是可读可写特性;同时生成get方法和set方法的声明和实现
2)readonly:是只读特性;只生成get方法的声明和实现
3)assign:是赋值特性;set方法的实现是直接赋值,用于基本数据类型
4)retain:表示持有特性;set方法的实现是release旧值,retain新值,用于OC对象类型
5)copy:表示赋值特性;set方法的实现是release旧值,copy新值,用于NSString、block等类型
6)nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic
3-引用计数特殊情况:
NSArray:当把一个对象添加到NSArray时,对象的引用计数会加1,移除时会减1。
UIView:addGestureRecognizer会对手势识别器的引用计数加1,removeGestureRecognizer会减1。

本文详细介绍了Objective-C中的 autorelease 机制、不同属性的作用(如 readonly、assign、retain 和 copy),并解释了 NSArray 和 UIView 在引用计数上的特殊行为。

被折叠的 条评论
为什么被折叠?



