iphone - 内存泄漏虽然ARC

时间:2012-12-11 22:00:36

标签: iphone objective-c ios memory-management xcode4.5

虽然启用了自动引用计数,但我收到内存泄漏。

我做了一些调试,并说明应用程序获取此输出的问题: *** error: can't allocate region*** set a breakpoint in malloc_error_break to debug

我追踪到这一点:

if (currentTime < 60) {
    currentTimeMin = 0;
    ct.text = [NSString stringWithFormat:@"%i:%i", currentTimeMin, currentTime];
}
if (currentTime >= 60) {
    currentTimeMin = 1;
    ct.text = [NSString stringWithFormat:@"%i:%i", currentTimeMin, currentTime -60];
}
if (currentTime >= 120) {
    currentTimeMin = 2;
    ct.text = [NSString stringWithFormat:@"%i:%i", currentTimeMin, currentTime -120];
}
if (currentTime >= 180) {
    currentTimeMin = 3;
    ct.text = [NSString stringWithFormat:@"%i:%i", currentTimeMin, currentTime -180];
}
if (currentTime >= 240) {
    currentTimeMin = 4;
    ct.text = [NSString stringWithFormat:@"%i:%i", currentTimeMin, currentTime -240];
}
if (totalTime < 60) {
    totalTimeMin = 0;
    tt.text = [NSString stringWithFormat:@"%i:%i", totalTimeMin, totalTime];
}
if (totalTime >= 60) {
    totalTimeMin = 1;
    tt.text = [NSString stringWithFormat:@"%i:%i", totalTimeMin, totalTime -60];
}
if (totalTime >= 120) {
    totalTimeMin = 2;
    tt.text = [NSString stringWithFormat:@"%i:%i", totalTimeMin, totalTime -120];
}
if (totalTime >= 180) {
    totalTimeMin = 3;
    tt.text = [NSString stringWithFormat:@"%i:%i", totalTimeMin, totalTime -180];
}
if (totalTime >= 240) {
    totalTimeMin = 4;
    tt.text = [NSString stringWithFormat:@"%i:%i", totalTimeMin, totalTime -240];
}

我认为问题在于标签:ct和tt,但我不确定,似乎无法弄清楚原因。一切都运作良好,直到前一天我用UITableVIews进行了一些实验。

祝你好运!马丁

2 个答案:

答案 0 :(得分:3)

此代码是否在循环中?如果是,则需要将代码放入自动释放池中。

while(someStuff) {
    @autoreleasepool {
        //Your code here
    }
}

答案 1 :(得分:0)

这段代码不应该导致泄漏。您的错误在其他地方。启用guard malloc并阅读有关调试和分析objective-c。