Objective-C | 属性
属性
属性的声明
@property 关键字,声明一个属性
属性参数
1 | 内存管理相关 |
原子性:要么完整的被执行,要么完全不执行
属性的应用
用属性声明后就会自带setter,getter方法,可以直接使用点语法
copy关键字
当使用不可变类型的属性时,等同于strong,当使用可变类型时,每次赋值都会拷贝一个新的对象
深复制:内容复制,编译器会开辟新的内存来存储复制对象的数据,复制对象retaincount默认为1,需手动释放
浅赋值:指针赋值,只是将对象的引用计数加1,需要手动释放
copy:不可变复制,若对象时不可变的是浅复制,若对象时可变的是深复制,且复制对象不可变
mutableCopy:可变复制,无论对象可变还是不可变都是深复制,复制的对象可变