gpt4 book ai didi

ios - iPad中大量大图像的内存泄漏

转载 作者:行者123 更新时间:2023-12-01 18:02:01 24 4
gpt4 key购买 nike

我正在尝试存储 UIImage 中的数据NSArray ,实际上是 60 张图片,每张图片大小为 300kb。然后,我尝试为 中的图像制作动画。 UIImageView .
我的代码:

    NSMutableArray *arr = [[NSMutableArray alloc] init];
for (int i=0; i<61; ++i) {
[arr addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%i.png", i]]];
}

img.animationImages = arr;
img.animationDuration = 1.5;
img.contentMode = UIViewContentModeBottomLeft;
[img startAnimating];

当我在 iPad Simulator 4.3 中测试它时,它运行良好。
当我想在我的设备 (iPad 1) 上测试它时,应用程序 崩溃 .
注:如果我评论此代码,应用程序不会崩溃: [img 开始动画];
1. 可能是什么问题?我认为这是内存问题...?!
2. 我可以在 NSArray 中存储大量 UIImages 吗?

最佳答案

您的 png 文件可能有 300KB,但这是一种压缩格式。

要了解图像本身的大小,您应该乘以每个像素的宽度、高度和字节数。

即如果图像的大小为 1024 * 1024 和 RGBA 模型,则图像本身在内存中的大小为 4MB。这只是一张图片。如果您有 300 个,则大约为 120MB。

注意:这只是一个粗略的经验法则,但它给了你一个想法。

因此,您应该在数组中保留路径名并仅在需要时加载图像,并且应该调整缩略图的大小并作为文件存储在磁盘上。不要只是缩放 UIImageView。

这里是 a great article带有关于调整大小的代码。

关于ios - iPad中大量大图像的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229346/

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