【发布时间】:2011-08-03 13:31:52
【问题描述】:
我有一个 UIViewcontroller,我想将它推送到 UINavigationController,然后它会使用 presentModalViewController:animated 推送到模态视图。
这是我的代码:
TargetViewController *targetViewController = [[[TargetViewController alloc] init] autorelease];
UINavigationController *targetNavController = [[[UINavigationController alloc] initWithRootViewController:targetViewController] autorelease];
[self presentModalViewController:targetNavController animated:YES];
代码运行时,模态视图按预期加载,但在调用dismissModalViewControllerAnimated:后,模态视图滑下,应用崩溃。
我在 gdb 中收到以下错误: -[CALayer retain]:消息发送到释放的实例
问题的第一部分:上面的代码有什么固有的错误吗?
第二部分:如果上面的代码没有问题,我应该在哪里调试?
其他信息: 当我不释放或自动释放导航控制器时,它工作正常。但是 Instruments 会显示废弃的内存,我只能假设 navController 没有被释放。也许是模态视图控制器
附:我知道崩溃与上述 ViewController、navController 和模态视图的内存管理有关,因为我的代码在弄乱这段代码之前就已经工作了。
【问题讨论】:
标签: ios memory-management uinavigationcontroller modalviewcontroller