Objective-C高级编程笔记

修饰符:

  • __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,所以使用的时候要确保存在再调用,否则会发生奔溃。

你可能感兴趣的:(Objective-C高级编程笔记)