Objective c 仪器无法找到内存泄漏
我有这个测试代码,我使用配置文件选项运行它。 但我看不到任何泄漏 我已注入泄漏,但不确定仪器为何未显示泄漏Objective c 仪器无法找到内存泄漏,objective-c,xcode4,instruments,memory-leaks,xcode-instruments,Objective C,Xcode4,Instruments,Memory Leaks,Xcode Instruments,我有这个测试代码,我使用配置文件选项运行它。 但我看不到任何泄漏 我已注入泄漏,但不确定仪器为何未显示泄漏 NSMutableArray* test_leak2() { int i=0; NSMutableArray *arr = [[NSMutableArray alloc] init ]; while(i <100) { NSImage *img = [[NSImage alloc] init ]; [arr addObject:img
NSMutableArray* test_leak2()
{
int i=0;
NSMutableArray *arr = [[NSMutableArray alloc] init ];
while(i <100) {
NSImage *img = [[NSImage alloc] init ];
[arr addObject:img];
i++;
}
return arr;
}
int main(int argc, char *argv[])
{
NSMutableArray *arr = test_leak2();
return 0;
}
NSMutableArray*测试_leak2()
{
int i=0;
NSMutableArray*arr=[[NSMutableArray alloc]init];
而(i如果您使用的是ARC,则无泄漏,ARC将“在封盖下”处理保留/释放
泄漏工具不是万无一失的,它是一个良好的开端
如果是静态分析器,第一道防线是运行它并修复所有警告
并非所有的内存丢失都是泄漏,只是没有指针指向的泄漏。请尝试Heapshot分析,bbum有一个很好的解决方案。我已经多次使用Heapshot获得了很大的优势,这要感谢bum。除非您使用的是自动引用计数(ARC),您应该看到您的分配在增加,静态分析器告诉您什么?您是否在启用ARC的情况下创建项目?如果是,ARC将自动插入粘合代码,这意味着没有泄漏。请检查您的项目设置以获取自动保留计数。这可能是“问题”。如果您没有启用ARC,请在main中添加一些CPU空闲。Instruments不是实时收集数据,而是在时间间隔(如秒)后获取数据。在返回0之前插入“sleep(10)”。也许您会看到泄漏。添加sleep有效,谢谢!!!