这个变量应该手动释放吗?

时间:2011-05-12 15:04:51

标签: iphone objective-c

需要释放内存以进行alloc,retain和copy。我的问题是我保留UIImage属性的情况,但是它是由imagedNamed函数自动释放的。我还应该发布以下变量吗?

@property (nonatomic, retain) UIImage *image;
self.image = [UIImage imageNamed:@"image.png"];

谢谢!

2 个答案:

答案 0 :(得分:4)

在您的代码中,您不使用您的属性,而是直接将自动释放的UIImage对象分配给您的iVar,因此您需要

  1. 保留您的图像(或者更好地实际使用属性) - 否则当您退出当前作用域时,您的图像对象将被销毁,并且在其他方​​法中访问它将导致错误。所以使用:

    self.image = [UIImage imageNamed:@"image.png"];
    
  2. 以dealloc方式发布图像

答案 1 :(得分:0)

是的,你必须保留图片,因为你保留了它。