将自动释放的对象分配给保留的属性

发布于 2025-01-06 10:00:03 字数 587 浏览 4 评论 0原文

我的自定义 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 返回一个自动释放的图像。

我的问题是我得到 EXC_BAD_ACCESS在 MyTableCell 的 dealloc 方法中。 谁能告诉我为什么我会得到这个?

此致

I have a property with name bgImage in my custom UITableViewCell class (MyTableCell). Its declared like

@property (nonatomic, retain) UIImageView *bgImage;

in dealloc method of MyTableCell, i release btImage

[bgImage release];
self.bgImage = nil;
[super dealloc];

Now what I do with this bgImage in cellForRowAtIndexPath is that i assign it a autoreleased object

myTableCell.bgImage.image = [Util imageNamedNoCache:@"image.png"];

where imageNamedNoCache returns an autoreleased image.

My problem is that I get EXC_BAD_ACCESS in dealloc method of MyTableCell.
Can anyone please tell me why I am getting this?

Best Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弃爱 2025-01-13 10:00:03

您在 dealloc 中释放了 bgImage 两次,这就是您获得 EXC_BAD_ACCESS 的原因。
您自己释放它,当您执行 self.bgImage = nil; 时,它会在生成的 setter 方法中释放

You release bgImage twice in dealloc, that's why you get EXC_BAD_ACCESS.
You release it yourself and it is released in generated setter method when you do self.bgImage = nil;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文