这种潜在的内存泄漏的原因是什么?

时间:2011-12-17 22:52:17

标签: iphone objective-c xcode

当我分析程序时,下面的行给了我“潜在的内存泄漏”。我正在运行最新版本的xCode(4.2),程序运行没有错误,经过多次测试后从未崩溃。任何帮助将不胜感激。提前致谢

[self.topTenEntry1 setBackgroundColor:[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]];

1 个答案:

答案 0 :(得分:7)

您正在泄漏UIColor对象。你初始化它但没有指向它的指针要发布。

预先创建并在之后释放,或者在上面的行中自动释放。

self.topTenEntry1 setBackgroundColor:[[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]] autorelease];

请注意,内存泄漏并不一定会导致程序崩溃 - 如果泄漏代码没有经常执行,那么在运行期间您将不会注意到(程序员不舒服的模糊感)。但是,它们应该总是被删除 - 特别是这样的直截了当的。 iOS是一个内存受限的环境。分析仪立即选择了这个泄漏,没有理由Apple在审查期间也不会注意到它。

相关问题