Iphone pushViewController发布

时间:2011-01-04 12:53:31

标签: iphone uinavigationcontroller

当我打电话时:

        ChooseDateView *nextController = [[ChooseDateView alloc] initWithNibName:@"ChooseDateView" bundle:nil];
        [self.navigationController pushViewController:nextController animated:YES];

是否需要调用[nextController release]?

感谢

4 个答案:

答案 0 :(得分:12)

是的,有必要致电

[nextController release]

otherWise使对象成为自动释放

ChooseDateView *nextController = [[[ChooseDateView alloc] initWithNibName:@"ChooseDateView" bundle:nil] autorelease];

答案 1 :(得分:2)

有必要调用[nextController release],否则将如何释放分配的内存?

答案 2 :(得分:1)

  

您只释放或自动释放您拥有的对象。

     

如果您拥有对象的所有权   使用名称为的方法创建它   以“alloc”或“new”开头   包含“复制”(例如,alloc,   newObject,或mutableCopy),或者如果你   发送保留信息。

     

您使用发布或自动发布   放弃对象的所有权。   autorelease只是意味着“发送一个版本   未来的信息“(了解   如果是这样,请参阅“自动释放   池”)。

Memory Management Rules

答案 3 :(得分:0)

由于您已分配内存,因此您是该对象的所有者。在分配之后,使用pushViewController推送该对象。所以我们可以安全地释放该对象。 因为你拥有这个对象所以必须这样做。 你也可以自动发布它。