我的应用程序允许用户拍照并将其存储在手机上,以便稍后再参考。我已将其他用户信息存储在plist中,并尝试对图像执行相同操作。在摄像机拍摄照片后,UIImage将转换为NSData(使用UIImagePNGRepresentation)并存储在plist中。唯一的问题是,在存储了两三个图像后,应用程序会收到内存警告并崩溃。如果有人能告诉我一个更有效的方法将图像存储在plist中,我将不胜感激。提前谢谢。
答案 0 :(得分:1)
我建议您不要将图像保存到plist,将图像保存到Documents文件夹以及plist中该图像的路径。
答案 1 :(得分:0)
您可以使用/尝试保存文件系统,iOS中的每个应用程序都是沙盒,并且可以访问自己的文档文件夹。
我建议在文件系统上编写并保存数据库中的URL,因为这比在数据库中保存blob更有效。
Apple对iOS filesystem.
的评论很好或者
如果您不能/不会在应用程序包中保存任何内容。您可以使用+[NSData dataWithContentsOfURL:]
将图像存储在应用程序的文档目录中
NSData *imageData = [NSData dataWithContentsOfURL:myImageURL];
NSString *imagePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"/myImage.png"];
[imageData writeToFile:imagePath atomically:YES];
或