以下代码片段中是否有任何内存泄漏?

时间:2012-10-15 11:43:56

标签: iphone memory-management uiimage memory-leaks

'countdown'是一个uimageview属性,定义如下:

@property (retain, nonatomic) IBOutlet UIImageView *countDown;

countDown.image=  [[[UIImage alloc] 
      initWithContentsOfFile:[[NSBundle mainBundle] 
      pathForResource:@"backgroundimage" ofType:@"png"]]autorelease];

2 个答案:

答案 0 :(得分:3)

可能有。

如果您从Leaks Instrument中找到它,它会显示泄漏对象创建的位置,而不是泄漏的位置。

所以,虽然它看起来没问题,但是你将一个自动释放的对象传递给一个属性,属性通常会很好地管理它们的内存,你正在用那个导致它不被释放的图像做其他事情。

你可能忘记在dealloc中释放它,或者在没有意识到你有强烈引用它的情况下使用它。

您需要做的是尝试并关注该图片的生命周期,以查看您保留它的位置没有发布。

答案 1 :(得分:0)

取决于什么是 countDown 对象,以及您是否在类的 dealloc()方法中发布属性图像,其中countDown是一个对象。

编辑:看到你的问题后编辑..

如果正确释放countDown,则无内存泄漏。