OC_自动引用计数器_0x06

0x01.内存管理的思考方式:

1)自己生成的对象,自己所持有;

2)非自己生成的对象,自己也能持有;

3)自己持有的对象不再需要时释放;

4)非自己持有的对象无法释放;

0x02.所有权修饰符

1)__strong修饰符,是id类型和对象类型默认的所有权修饰符。也就是说,一下源代码中的id变量,实际上被附加喇所有权修饰符:

  id obj =[ [NSObject alloc] init];

持有枪引用的变量在超出其作用域时被废弃,随着强引用的失效,引用的对象会随之释放。

正如苹果宣称的那样,通过__strong修饰符,不必再次键入retain或者release,完美地满足了“引用计数式内存管理思考方式”;

2)__weak修饰符,解决引用计数式内存管理中“循环引用”的问题。

遗憾的是,__weak修饰符只能用于iOS5以上及OS X Lion以上版本的 应用程序。在iOS4以及OS X Snow Leopard的应用程序中可以使用__unsafe_unretained修饰符来代替。

3)__unsafe_unretained修饰符

4)__autorelease修饰符,

posted on 2015-10-23 14:13  FKunLam  阅读(180)  评论(0编辑  收藏  举报