iOS - 我们应该只将图像保存为本地文件还是二进制数据(在Core Data对象中)?哪种方式更快?

时间:2012-04-19 04:53:01

标签: iphone ios xcode

我目前正在使用保存在Core Data对象中的二进制数据来生成UIImage,如下面的代码所示。

UIImage * postImage = [UIImage imageWithData:image];
double imageRatio = postImage.size.height / postImage.size.width;
[imageContent setFrame:CGRectMake(imageContent.frame.origin.x, imageContent.frame.origin.y, imageContent.frame.size.width, imageContent.frame.size.height * imageRatio)];
[imageContent setImage:postImage];

然而,我发现生成图像时有点慢 改为从服务器检索数据时,我应该在本地保存图像吗? 哪种方式更快?

谢谢,

3 个答案:

答案 0 :(得分:4)

将图像保存在本地(例如,在Documents或Caches目录中)而不是Core Data数据库中。将二进制数据存储在数据库中没有任何好处,因为您永远不会通过此数据进行搜索或索引,而且只会使数据库膨胀。只需将NSString引用存储到保存图像的文件名/路径中。

我想UIImage:imageWithData方法与从已经采用合适图像格式的文件中读取图像相比较慢。

答案 1 :(得分:1)

在本地保存图像并在coreData中保存该图像的位置和名称“URL”

答案 2 :(得分:1)

在本地保存图像,例如PNG或JPEG而不是NSData。