我目前正在使用保存在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];
然而,我发现生成图像时有点慢
改为从服务器检索数据时,我应该在本地保存图像吗?
哪种方式更快?
谢谢,
答案 0 :(得分:4)
将图像保存在本地(例如,在Documents或Caches目录中)而不是Core Data数据库中。将二进制数据存储在数据库中没有任何好处,因为您永远不会通过此数据进行搜索或索引,而且只会使数据库膨胀。只需将NSString引用存储到保存图像的文件名/路径中。
我想UIImage:imageWithData方法与从已经采用合适图像格式的文件中读取图像相比较慢。
答案 1 :(得分:1)
在本地保存图像并在coreData中保存该图像的位置和名称“URL”
答案 2 :(得分:1)
在本地保存图像,例如PNG或JPEG而不是NSData。