gpt4 book ai didi

iphone - UIImageView setImage 泄漏?

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:02 29 4
gpt4 key购买 nike

一直在寻找这个问题的解决方案已经无数个小时了。问题其实很简单。我在 nib 中有一个 UIImageView,我正在从互联网加载图像并使用该图像设置 UIIImageView。我正在释放 viewController。 Dealloc 实际上被调用(!)并再次加载 viewController 和图像。这可以通过进入后台模式非常简单地完成。 Instrument Leaks 没有报告任何泄漏,但它在分配中显示它将图像保存在内存中并不断增长。

基本示例:

-(id)init {
if((self = [super init])) {
id path = [NSString stringWithFormat:@"http://www.aSite.com/largeImage.jpg"];
NSData* urlData = [[NSData alloc] initWithContentsOfURL:url];
UIImage* img = [[UIImage alloc] initWithData:urlData];
[background setImage:img];
[urlData release];
[img release];
}
return self;
}

-(void)dealloc {
[background release];
[super dealloc];
}

有人说UIImageView其实是leaking,或者说其实是CGImage。有人说 Instrument 显示不正确。使用 2.5mb 大图像执行此操作 10-15 次后,我收到内存警告。结果来自真实设备和最新的 iOS(或至少 4-5 周前)。由于 UIImageView 被这么多人使用,我认为很容易找到问题或从 Apple 获得修复?

CGImage 泄漏的来源: (iphone) UIImageView setImage: leaks?

编辑: 当我写这个例子的时候我有点笨拙。现在的例子是正确的。我也尝试过使用自动释放的对象,但同样的“泄漏”仍然存在。如果您要写答案,请回答问题

最佳答案

释放设置图片后的url

[background setImage:[UIImage imageWithData:urlData]];
[urlData release];
[img release];

关于iphone - UIImageView setImage 泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5878690/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com