0

我有两张图片。一个保存在捆绑包中

NSString *imagePath = [NSString stringWithFormat:@"%@/%@",_path,[contents objectAtIndex:0]];

另一个保存在文件夹中

NSFileManager *filemanager = [NSFileManager defaultManager];

    NSArray *contents = [filemanager contentsOfDirectoryAtPath:_path error:nil];
   NSString *imagePath = [NSString stringWithFormat:@"%@/%@",_path,[contents objectAtIndex:0]];

将图像加载到 UIImageView

_avatar = [UIImage imageWithContentsOfFile:filePath];

如果我从 bundle 加载图像,使用内存增加到 2Mb 如果我从文档加载图像,使用内存增加到 40mb 两个图像的大小都是 2448x3264

这里确实有错误。

4

1 回答 1

0

与从包中检索相比,将信息保存到磁盘或从磁盘中检索总是成本高昂(内存)和耗时。这意味着如果您从文档目录加载图像,则总图像大小将添加到您的应用程序大小中。与从包中加载图像相比,这就是内存增加到 40 mb 的原因。

实际上,这根本不是内存泄漏,您不必担心这一点。

于 2013-10-28T07:44:19.760 回答