美好的一天,
我完全没有检查内存泄漏的经验,所以任何帮助都会很好。
我刚完成了iPhone应用程序的大部分工作,现在我想弄清楚为什么它会在几次运行后停止工作。在Leaks和Allocations模式下使用Instruments我可以看到有两个对象很快堆积内存而不释放:
我不是百分之百确定发生这种情况的原因或原因,但当我点击UIDeviceRGBColor右侧的箭头时,责任来电者被声明为
[UIColor allocWithZone];
我在UIColor的项目中进行了搜索并找到了这个(注意_colorThreshold):
我认为我的问题与_colorThreshold有关,而这似乎没有被释放:
我尝试将autorelease添加到他们的初始化参数中,但这导致应用程序崩溃。这里有什么建议吗?
编辑1
以下是LevelMeter.h
的截屏答案 0 :(得分:2)
以上有几个问题:
Leaks仪器是否报告泄漏,或者您只是分配不必要的内存? 这两种情况有所不同:
release
消息。泄漏只能检测到第一种情况 泄漏样本:
NSMutableString* test = [[NSMutableString alloc] initWithString:@"1"];
NSLog(@"%@", test);
NSMutableString* anotherTest = [[NSMutableString alloc] initWithString:@"2"];
test = anotherTest; //here we loose reference to the original object
NSLog(@"%@", test);
通过指定anotherTest进行测试,我们丢失了指向包含@“1”的内存地址的引用。