我是Xcode 4.2的新手,因为我的项目差不多完成了,我想我会尝试Apple提供的一些工具。所以,我跑了Leak,显然,它在应用程序启动时直接发现泄漏。我在“泄漏”部分得到一个坚实的橙色垂直条,当我调查时,似乎这是罪魁祸首:
int main(int argc, char *argv[])
{
@autoreleasepool {
//problem appears on the line below in Orange
return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestProjectAppDelegate class]));
}
}
由于我是新手,我不知道问题是什么,如何解决,或者即使我找到了实际问题!
(某处应该没有“排水”电话吗?)
非常感谢任何帮助。
EDIT 链接到屏幕截图文件:http://whoit.home.comcast.net/~whoit/combined.jpg (太大而无法嵌入)
答案 0 :(得分:2)
点击Leak选项窗格中的invert call tree
。
而且,如果可能的话,也许您可以为此视图添加屏幕截图:
答案 1 :(得分:0)
用这个替换整个@autoreleasepool块:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([TestProjectAppDelegate class]));
[pool release];
return retVal;
如果您仍然看到相同的泄漏,那么您的代码中的其他地方就会出现过度保留问题,而且此部分不是问题。如果不仍然看到它(不太可能),那么这种新语言结构可能会出现问题。极不可能,但这是一个新的结构,所以肯定会有错误。