-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 进行了一些试验,一切都运行良好。

此致!马丁

4

2 回答 2

3

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

while(someStuff) {
    @autoreleasepool {
        //Your code here
    }
}
于 2012-12-11T22:19:37.833 回答
0

那段代码不应该导致泄漏。你的错误在别处。启用保护 malloc 并阅读有关调试和分析 Objective-c 的信息。

于 2012-12-11T22:27:44.280 回答