当我打电话时:
ChooseDateView *nextController = [[ChooseDateView alloc] initWithNibName:@"ChooseDateView" bundle:nil];
[self.navigationController pushViewController:nextController animated:YES];
是否需要调用[nextController release]?
感谢
答案 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只是意味着“发送一个版本 未来的信息“(了解 如果是这样,请参阅“自动释放 池”)。
答案 3 :(得分:0)
由于您已分配内存,因此您是该对象的所有者。在分配之后,使用pushViewController推送该对象。所以我们可以安全地释放该对象。 因为你拥有这个对象所以必须这样做。 你也可以自动发布它。