修饰符:
- __strong
- __weak
- __unsafe_unretained
- __autoreleaseing
__strong 修饰符是id类型和对象类型默认的所有权修饰符
//两种写法是一样的,__strong是默认修饰符,一般会省略不写。
id __strong obj = [[NSObject alloc] init];
id obj = [[NSObject alloc] init];
__weak 与__strong相反,提供弱引用,弱引用不能持有对象实例。一般是为了处理循环引用。
__unsafe_unretained 与__weak一样,自己生成的对象被__unsafe_unretained修饰后,既不持有强引用也不持有弱引用。所以是不安全的。在ios4以及OS X Leopard 的程序中,必须用__unsafe_unretained代替__weak,所以使用的时候要确保存在再调用,否则会发生奔溃。
网友评论