读写权限。原子性。引用计数
readonly readwrite 默认的
atomic nonatomic
retain/strong
assign weak copy
assign。weak
都不会增加引用计数
修饰基本数据类型
对象置为空 不会把指针置为nil
weak
修饰对象
所指的对象释放后会自动置为nil ???
copy
浅拷贝 只是指针拷贝 增加引用计数
深拷贝 是内容拷贝【占用新内存】不增加引用计数
可变对象。copy mutableCopy 深拷贝
不可变对象。copy 浅拷贝 mutableCopy 深拷贝
copy方法都是不可变对象
@property (nonatomic, copy) NSMutableArray *arr;
会有什么潜在的问题? copy之后都是不可变对象。当我们调用add 或者 remove 的时候就回崩溃
MRC下如何重写修饰变量的setter方法
- (void)setObj:(id)obj {
if (_obj != obj) {
[_obj release];
_obj = [obj retain];
}
}
分类的实现原理
1.运行时决定
2.同名方法 最后编译的最后生效
3.覆盖父类方法。 父类的仍然存在
KVO实现原理
我们使用KVO是系统会为监听的那个类动态添加自类。然后父类的isa指向子类
子类 会重写setter方法
网友评论