UIImage内存泄漏

发布于 2024-09-18 11:49:24 字数 359 浏览 1 评论 0原文

.h 文件

UIImage *ownImg;

@property (nonatomic, retain) UIImage *ownImg;

.m 文件

在 vi​​ewWillAppear 方法中:

UIImage *myImage2 = [UIImage imageNamed:@"thumbnail.png"];

self.ownImg = myImage2;

这是 ownImg 中的泄漏,有人知道为什么泄漏吗?

顺便说一句,使用 self.ownImg 和不使用 self.ownImg 有什么不同。

谢谢。

.h file

UIImage *ownImg;

@property (nonatomic, retain) UIImage *ownImg;

.m file

In viewWillAppear method:

UIImage *myImage2 = [UIImage imageNamed:@"thumbnail.png"];

self.ownImg = myImage2;

That is a leak in ownImg, anyone know why it leaking?

BTW, what is the different of using self.ownImg and without the self.

Thanks.

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

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

发布评论

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

评论(1

身边 2024-09-25 11:49:24

调用

ownImg = myImage2;

只是一个仅设置指针的赋值。但是调用

self.ownImg = myImage;

将调用包含保留的@synthesized setter。 (我假设您有 ownImg 的 @synthesize() 。)

因为您使用的是保留的 setter 方法,所以您必须在某个地方释放它。尝试将其放置在 unload 方法的重写中,或者如果非 nib 类将其放置在 dealloc 中。

Calling

ownImg = myImage2;

is just an assignment that merely sets the pointers. But calling

self.ownImg = myImage;

will call a @synthesized setter that contains a retain. (I assume you have the @synthesize() for the ownImg.)

Because you're using a setter method that retains you'll have to release it somewhere. Try placing that in the override for the unload method, or if a non-nib class place it in the dealloc.

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