0

我有这样的代码:

MyViewController *myController = [[MyViewController alloc] init];
[self.myNavController pushViewController:myController animated:YES];
[myController release];

在上述情况下,MyViewController 的 deallc 被调用两次,导致崩溃。如果我删除最后一行“[myController release];” 一切都很好。

这不违反内存管理准则吗?

4

2 回答 2

0

如果我真的理解,你必须使用 initWithNibName 来对抗 init,如下所示:

MyViewController *myController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];

请试试这个并回复,最好的问候。

于 2012-06-22T22:37:43.280 回答
0

您确定 MyViewController 的 dealloc 方法不会多次释放 someObj 吗?您可以尝试清除 dealloc 内容,然后再次运行该应用程序。

于 2013-05-07T08:59:12.430 回答