假设我有一个这样的 View Controller :

@interface ControllerA : viewcontroller{
    NSString * __strong a;
}

@end

并在viewDidLoad函数中设置
a = [[NSSString alloc] init];

在另一个ControllerB中,
{
    ControllerA * controllerA = [[ControllerA alloc] init];
}

controllerA的成员会被释放吗?

最佳答案

是的,当释放a时,将释放controllerA指向的字符串。您无需自己将其设置为nil

Transitioning to ARC Release Notes当前是寻找有关使用ARC的更多信息的地方。它提出的一个重要观点是,如果您的类除释放实例变量时释放实例变量外还需要执行其他操作,则可能仍需要自定义-dealloc

关于ios - 在ARC下,卸载viewcontroller时需要将nil设置为所有强成员吗?那是必须的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11444988/

10-11 19:59