ios那些事–曾经让我不明的属性
IOS声明成员变量(暂且这样叫)时会有一些可选的Attributes可供选。
第一类: 表明可读写的属性。
1、readwrite —- 读写,默认属性。
2、readonly —- 只读的 ,其实现类将不会有setter方法。
第二类:setters语义,下面这几个可选属性之间是互斥的。
1、strong — 表示设置来的本对象与设置来的对象之间有着很强的关联关系,是当前对象的一部分 类似一种聚合关系?
2、weak — 弱引用属性是,仅执有目标对象的引用,目标对象销毁时,当前对象将这个引用成员设置为nil。是一种组合关系。
3、copy—会使用copy方法产生一个新的对象。目标对象必需实现NSCopying协议(接口)。
4、assign —简单的数值赋值。默认属性,主要用于值对象。
5、retain — 重新创建,会将原引用对象的retainCount加1.
第三类:原子属性标识。
1、nonatomic — 标识是否为线程安全的,默认的是线程安全的。
实现中的两个属性。
1、@synthesize 自动生成getter and setters
2、@dynamic 动态绊定。