虽然启用了自动引用计数,但我收到内存泄漏。
我做了一些调试,并说明应用程序获取此输出的问题:
*** 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进行了一些实验。
祝你好运!马丁
答案 0 :(得分:3)
此代码是否在循环中?如果是,则需要将代码放入自动释放池中。
while(someStuff) {
@autoreleasepool {
//Your code here
}
}
答案 1 :(得分:0)
这段代码不应该导致泄漏。您的错误在其他地方。启用guard malloc并阅读有关调试和分析objective-c。