iOS通过文件或通过nsdata保存UIImage?

时间:2014-05-19 15:53:42

标签: ios objective-c uiimage save nsdata

我正在尝试将词典保存在plist中。 其中一个字典键是图像。

我有两种选择(尝试和工作),但不确定哪种更好?

1)将文件保存在Documents文件夹中作为文件+在plist中保存文件名以便日后检索?

2)将图像的NSData直接保存在plist中以便日后检索?

我尝试了两种方法,两种方法都很好用。我能够保存和检索图像。

我的问题是:对于另一种方式,是否有任何优点/缺点?

由于

编辑:

更多说明:图像来自相机,我使用

保存
NSData *imageData  = UIImageJPEGRepresentation(image, 0.7f);
[imageData writeToFile:[SAD.myE documentsPathForFileName:@"testImage.jpg"] atomically:YES]; //Write the file

然后我缩小它们,并保存一个较小的图像用于tableView,每个单元格一个图像。

据我所知,最好将它们保存为Documents目录中的文件并在后台以那种方式检索它们?

2 个答案:

答案 0 :(得分:1)

肯定会建议将UIImage保存到文件并将文件名保留在plist中。 Plists并不打算如此繁重地存储大量数据。保存到文件后,您将看到更好的性能。

答案 1 :(得分:1)

这实际上取决于您保存的方式,更重要的是,您以后使用数据的方式。

在大多数情况下保存可以卸载到后台,然后它不是你的瓶颈,你可以自由地做任何你想做的事情

阅读数据通常是时间限制的主题,例如您正在表视图中显示图片,这意味着您希望每个文件分隔一个图像,以便您可以尽可能原子地读取。或者你可能需要随机访问 - 然后你最好将除二进制blob之外的所有数据序列化为SQLite

如果您能提供数据消费样本,那就等等。

澄清一下,如果您正在优化阅读 - 最好的选择是保存解压缩的图像,这样它甚至不需要解析png或jpg格式