ARC如何处理方法中的局部变量?

时间:2014-06-07 01:01:44

标签: ios objective-c

例如,

- (void) method
{
    NSString *string = @"This is a string.";

}

我需要添加

吗?
  

string = nil;

在方法结束时让ARC释放它?

非文字对象的情况可能有所不同,例如

- (void) method
{
    NSData *data = [[NSData alloc] init];

}

我是否需要在最后添加

  

data = nil;

发布它?

1 个答案:

答案 0 :(得分:3)

你不需要把它弄掉,但ARC也没有释放它。由于它是文字的,因此它会在应用程序的二进制文件中静态分配。它从未被释放。

- (void)method {

    NSString *string = @"I'm never released because I'm statically allocated";
    NSString *arcReleasesMeAfterMyLastSourceRef = [NSString stringWithString:string];
}