3

我只是在编程时想知道。我有一个创建 childViewController 实例的 rootViewController。这个 childVC 通过 [self.navigationController pushViewController:childVC] 从另一个 childViewController(比如 childVC2)推送到我的 rootViewController。现在我想知道我的 childVC2 实例会发生什么。它会被释放吗?因为当从 childVC 返回 childVC2 时,我创建了一个 childVC2 的新实例并将其推送到我的 rootViewController 中。显然我对 childVC2 的早期实例没有任何用处,所以它会发生什么,或者我可以手动释放它吗?

4

1 回答 1

1

是的,如果您分配 ViewController,则必须释放它..推送会将其引用计数增加 1,因此您必须确保将其弹出以减少引用计数..并在创建实例时定义它.h 并在创建时这样做

if(yourViewController)
  [yourViewContoller release];

yourViewController = [yourViewControllerClass alloc] init];

另一种选择是使其自动释放,在这种情况下,您不负责释放 ViewController

yourViewController = [yourViewControllerClass alloc] init]autorelease];
于 2012-04-05T15:16:37.890 回答