这种潜在的内存泄漏的原因是什么?
问题描述:
当我分析程序时,下面的行给我一个“潜在的内存泄漏”。我正在运行最新版本的xCode(4.2),该程序运行时没有错误,并且经过多次测试后从未崩溃。任何帮助将不胜感激。在此先感谢这种潜在的内存泄漏的原因是什么?
[self.topTenEntry1 setBackgroundColor:[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]];
答
您正在泄漏UIColor对象。你初始化它,但没有指向它的指针来释放。
可以事先创建并释放它,或者在上面的行中自动释放。
self.topTenEntry1 setBackgroundColor:[[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]] autorelease];
注意,内存泄漏不一定会导致你的程序崩溃 - 运行过程中,如果不执行经常泄漏的代码,你就不会在意(除了程序员的不适一种模模糊糊的感觉)。但是,他们应该总是被删除 - 特别是像这样简单的。 iOS是一个内存受限的环境。分析仪立即发现这个泄漏,苹果没有理由在审查过程中不会注意到它。
谢谢你做到了 - 感谢你的帮助。 – Gil 2011-12-20 02:37:21