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

Gil*_*Gil 1 iphone xcode objective-c

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

[self.topTenEntry1 setBackgroundColor:[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]];
Run Code Online (Sandbox Code Playgroud)

jrt*_*ton 7

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

要么事先创建并在之后释放,要么在上面的行中自动释放.

self.topTenEntry1 setBackgroundColor:[[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"reddishcolor.tiff"]]] autorelease];
Run Code Online (Sandbox Code Playgroud)

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