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有效,谢谢!!!