2012-04-19 195 views
4

我目前使用保存在Core Data对象中的二进制数据来生成UIImage,代码如下。
iOS - 我们是否应该将图像保存为本地文件或二进制数据(在核心数据对象中)?哪种方式更快?

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]; 

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

感谢,

+1

检查了这一点,这篇文章将帮助你 - http://stackoverflow.com/questions/2573072/coredata-store-images-to-db-or-not – rishi 2012-04-19 05:01:58

回答

3

保存图像局部(例如,在文档或缓存目录),而不是在核心数据库。您不会将二进制数据存储在数据库中,因为您将永远不会使用此数据进行搜索或索引,并且会膨胀数据库。只需将NSString引用存储到保存图像的文件名/路径即可。

我想象的是UIImage:imageWithData方法与从已经处于合适图像格式的文件读取图像相比较慢。

1

保存图像本地和你coreData保存位置和名称“URL”该图像

1

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

相关问题