内存管理的思考方式:
自己生成的对象,自己持有。
通过alloc,new,copy,mutableCopy开头的方法名意味着自己生成的对象只有自己持有。
非自己生成的对象,自己也能持有。
通过上述以外的方法获得的对象,不持有。
id obj = [NSMutableArray array];//获得对象,不持有
[array retain];//持有
- 不在需要自己持有的对象时释放。
- 非自己持有的对象无法释放
所有权修饰符种类
- __strong
- __week
- __unsafe_unretained
- __autoreleasing
属性与所有权修饰符对应关系
属性 | 所有权修饰符 |
---|---|
assign | __unsafe_unretained |
copy | __strong |
retain | __strong |
strong | __strong |
unsafe_unretained | __unsafe_unretained |
week | __week |