将自动释放的对象分配给保留的属性
Posted
技术标签:
【中文标题】将自动释放的对象分配给保留的属性【英文标题】:Assigning an autoreleased object to a retained property 【发布时间】:2012-02-16 14:15:20 【问题描述】:我的自定义 UITableViewCell 类 (MyTableCell) 中有一个名为 bgImage 的属性。它的声明像
@property (nonatomic, retain) UIImageView *bgImage;
在MyTableCell的dealloc方法中,我释放btImage
[bgImage release];
self.bgImage = nil;
[super dealloc];
现在我对 cellForRowAtIndexPath 中的这个 bgImage 所做的就是为它分配一个自动释放的对象
myTableCell.bgImage.image = [Util imageNamedNoCache:@"image.png"];
其中 imageNamedNoCache 返回自动发布的图像。
我的问题是我在 MyTableCell 的 dealloc 方法中得到了 EXC_BAD_ACCESS。 谁能告诉我为什么会得到这个?
最好的问候
【问题讨论】:
【参考方案1】:你在 dealloc 中释放了两次bgImage
,这就是你得到EXC_BAD_ACCESS
的原因。
你自己释放它,当你做self.bgImage = nil;
时它在生成的setter方法中释放它@
【讨论】:
以上是关于将自动释放的对象分配给保留的属性的主要内容,如果未能解决你的问题,请参考以下文章