引用计数解释:1.自己申请的内存自己持有 2.不是自己申请的也可以持有 3.自己申请的内存要释放 4.不能释放不是自己申请的内存,以上4句话完整解释引用计数
strong 引用计数+1
weak 引用计数不加1
copy 复制一个新的对象,引用计数为1,原有的对象引用计数不变
assign 修饰基础数据类型(NSInteger,CGFloat)和C数据类型(int, float,double)
nonatomic/atomic(安全策略)
copy的setter方法,先release旧值,在copy新的值
- (void)setName:(NSString *)newName{
if (name != newName){
[name release];
name = [newName copy];
}
}
nonatomic 直接访问内存中的值,没有锁的判断,可以一直取值而忽略CPU中是否在改变这个值。
atomic 不一定是线程安全,是在setter方法,getter方法时候能保证安全,其他地方不一定安全。比如 ++/--