有人可以帮助解决内存泄漏问题吗?

时间:2011-07-11 22:24:23

标签: objective-c memory-leaks

我是一个试图找出内存泄漏问题的新手。有没有人看到以下代码有什么问题?

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController.navigationBar setTintColor:[UIColor colorWithRed:0.10 green:.20 blue:0.30 alpha:1]];
}

如果有帮助,仪器会显示泄漏的块,其中包含以下信息......

事件类型:Malloc

负责任的图书馆:CoreGraphics

负责的来电者:CGTypeCreateInstanceWithAllocator

非常感谢任何帮助。 (我还是很新,所以请尽可能详细地解释。)

非常感谢!

2 个答案:

答案 0 :(得分:1)

就内存管理而言,您发布的代码是正确的。

仪器泄漏只会显示泄漏对象的分配点,而不是实际泄漏的点。

所以,你的泄漏在其他地方。看看你的代码,我会说当你释放包含该代码的类时,或者在dealloc的动态路径上的其他地方,可能会发生泄漏。

尝试注释setTintColor以检查泄漏是否仍然存在。

希望这个解释可以让你走上正轨,但无论如何,如果你需要更多帮助,你应该发布更多代码......

答案 1 :(得分:1)

有点远,但我不确定它是否只是我项目中的错误,但在tintColor中设置viewWillAppear时我遇到过类似的问题。在最终分配颜色之前,我最后添加了nil检查,这为我清理了(我没有对它进行任何进一步的调查,所以我可能错了)。

if (nil == self.navigationController.navigationBar.tintColor) {
  self.navigationController.navigationBar = [UIColor colorWithRed:0.10 green:.20 blue:0.30 alpha:1];
}