标签:
1.@property后的修饰符
strong : 该属性值对应 __strong 关键字,即该属性所声明的变量将成为对象的持有者,等同于"retain"
weak : 该属性对应 __weak 关键字,与 __weak 定义的变量一致,该属性所声明的变量将没有对象的所有权,并且当对象被释放之后,对象将被自动赋值nil,记住IBOutlet应该使用weak
copy : 和之前的copy一样,复制一个对象并创建strong关联
assign : 对象不能使用assign,但原始类型(BOOL、int、float)仍然可以使用
常见问题:
@property 后面可以有哪些修饰符?
什么情况使用 weak 关键字,相比 assign 有什么不同?
怎么用 copy 关键字?
这个写法会出什么问题: @property (copy) NSMutableArray *array;
如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter?
这一套问题区分度比较大,如果上面的问题都能回答正确,可以延伸问更深入点的:
@property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的
@protocol 和 category 中如何使用 @property
runtime 如何实现 weak 属性
标签:
原文地址:http://www.cnblogs.com/marshall-yin/p/4713426.html