iOS 5实例变量

时间:2011-10-14 23:09:12

标签: iphone ios ios5 automatic-ref-counting

我对ARC如何工作有点困惑,我知道有自动引用计数但是这个功能甚至可以用于分配原始实例变量(不使用属性)。

例如,如果我有一个实例变量arr

@interface TestClass : NSObject {
   NSArray *arr;
}

现在,如果在方法内部,我使用自动释放的NSArray

分配它
- (IBAction)test {
    arr = [NSArray arrayWithObject:@"TEST"];
 }

这个阵列会发生什么?它是否只是神奇地保留它,直到arr重新分配给其他东西?

现在,如果我做了类似的事情:

self.arr = [NSArray arrayWithObject:@"TEST"];

如果强弱对弱会发生什么?

1 个答案:

答案 0 :(得分:18)

是的,ARC适用于原始的ivar访问。就像局部变量一样,除非用__strong__weak修饰,否则ivars隐含__unsafe_unretained。因此,默认情况下,它们的行为类似于已标记为strong(或retain的属性,其中ARC是strong的同义词。)