我已从代码中删除了一些版本,以查看xCode中的Leaks乐器是否可以通知我有关错误代码的信息:
...
UINavigationController *masterNav = [[UINavigationController alloc] initWithRootViewController:master];
UINavigationController *detailNav = [[UINavigationController alloc] initWithRootViewController:detail];
[master release];
splitViewController.viewControllers = [NSArray arrayWithObjects:masterNav, detailNav, nil];
//[masterNav release]; [detailNav release]; commented out
但是我看不到任何通知。是因为为这些变量分配的内存太小了?在这个阶段我需要一个内存管理工具,我正在学习Objective-C
感谢
答案 0 :(得分:1)
你的over-retain(of detailNav)还没有泄漏,因为它仍然被splitViewController.viewControllers引用。这就是为什么仪器不会将其显示为泄漏的原因。
仪器没有标记过度保留(它不能)。只有当您的对象成为孤儿时,即在所有其他未泄漏的对象释放其引用之后,Instruments才会将其标记为泄漏。
答案 1 :(得分:0)
您是否在Xcode4中尝试了Product->Analyze
?这应该会告诉你泄漏。
答案 2 :(得分:0)
转到xcode并选择项目。然后点击构建并分析。它会给你一些内存泄漏