我在模拟器中尝试我的应用程序,一切顺利但是当我在设备上尝试时,响应时间直到带来数据非常慢......我能做什么,原因是什么?
我意识到问题在于,在我的实体中,我有一个将图像存储在二进制数据中的照片字段,当我将图像保存到核心数据或将图像拉到表视图中时,它需要花费很多时间。
将图片保存为NSData
的代码:
NSData *imageData = UIImagePNGRepresentation(_imageView.image);
从核心数据中提取图像的代码:
cell.imageView.image = [UIImage imageWithData:[recipe valueForKey:@"image"]];
这会减慢我的加载并保存到核心数据。从Core Data保存和加载图像的解决方案是什么?
答案 0 :(得分:0)
我能提供的最佳建议如下
保存上下文时,请在后台线程中执行。您应该遵循NSManagedObjectContext
的线程限制规则。如果您的目标是iOS 5设备,您还可以依赖新的Core Data API。
使用允许外部存储标记。
如果指定托管对象属性的值可能是 作为外部记录存储,Core Data启发式决定a 每个值的基础是否应该直接保存数据 数据库或将URI存储到它为您管理的单独文件中。
在进入第三步之前,我会尝试前两步。