我发现这个模块很麻烦。我从 Photolibrary 导入了 100 多张图像,将它们保存在不同名称的文档目录中。正如预期的那样,我在不寻常的地方遇到了记忆问题。似乎 UIImagePNGRepresenation 正在缓存文件。因此,当我为 300 多个图像运行以下过程时,我看到“总字节数”在 3.00 GB 范围内,并且由于内存而崩溃(在分配工具中测试)。我已经粘贴了下面的代码。这段代码有没有其他选择
-(void)something
{
NSData *data=nil;
for (int i=0; i<numberOfImages; i++) {
@autoreleasepool {
UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"image%d.png",i]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [[paths objectAtIndex:0] stringByAppendingString:@"directoryname"];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"image%d.png",i]];
//convert image into .png format
data=UIImagePNGRepresentation(image);
[data writeToURL:[NSURL URLWithString:fullPath] atomically:NO];
}
}
data=nil;
}