Iphone 这个变量应该手动释放吗?
内存需要释放以便分配、保留和复制。我的问题是在以下情况下,我保留UIImage属性,但它是由imagedNamed函数自动释放的。我还应该释放以下变量吗Iphone 这个变量应该手动释放吗?,iphone,objective-c,Iphone,Objective C,内存需要释放以便分配、保留和复制。我的问题是在以下情况下,我保留UIImage属性,但它是由imagedNamed函数自动释放的。我还应该释放以下变量吗 @property (nonatomic, retain) UIImage *image; self.image = [UIImage imageNamed:@"image.png"]; 谢谢 是的,您必须释放映像,因为您保留了它。在代码中,您不使用属性,而是直接将自动释放的UIImage对象分配给iVar,因此您需要 保留您的图像(或者更好
@property (nonatomic, retain) UIImage *image;
self.image = [UIImage imageNamed:@"image.png"];
谢谢 是的,您必须释放映像,因为您保留了它。在代码中,您不使用属性,而是直接将自动释放的UIImage对象分配给iVar,因此您需要
self.image = [UIImage imageNamed:@"image.png"];
但他正在访问ivar,而不是财产。所以不叫保留,对。它是一个自动释放对象。您需要担心只释放那些您分配或保留的对象。在您的示例中,如果您说self.image=[UIImage ImageName:@“image.png”];然后,当它的属性被访问时,它会被保留。如果你没有像你的例子中那样说self.image,你就没有保留它。仍然需要做self.image=nil和[image release]。所有保留的属性都必须在解除锁定中释放。@jini:不必在解除锁定中同时执行
self.image=nil
和[image release]
。第一个会使第二个变得不相关。是的,但是如果你这样做,那么image
就是零<代码>[nil release]完全不起作用。因此,doingself.image=nil;[图片发布]
与self.image=nil完全相同代码>对不起。键入self.image时出错。我猜您编辑此文件是为了解决此问题。下面的答案毫无意义。这使得其他人很难跟随和学习。你的原始代码是这样的吗<代码>[self image]=[UIImage ImageName:@“image.png”]代码>