2012-08-07 95 views
1

我目前正在开发一个应用程序,在该应用程序中我想将UIImage存储在我的一个Core Data实体中。我已经读过,在iOS 5中,UIImage现在符合称为NSCoding的协议,所以从NSData开始的转换方法不再是必需的。我已将图像属性设置为可变形,并且当我检索图像时,我的程序奇妙地起作用。在核心数据中将UIImage存储为可变形属性

这是一个安全可靠的方法来存储UIImage,这将允许未来低于30秒的迁移?它会表现得好吗?我还阅读了二进制数据属性类型,它允许将文件存储在文件系统中,而不是数据库中。如果这是一个更好的选择,那么将如何实现它?

回答

1

迁移时间取决于整个数据库模式和大小,而不仅仅是存储UIImage。没有人能回答这个问题。

表现是相对的。如果将它存储在外部,它通常会更好地表现出性能,因为它不在数据库本身中,但是还有很多其他性能问题,例如管理故障,尤其是如果将它存储为直接属性而不是关系。另外,这取决于你的使用情况。没有一种解决方案适合所有情况。

您必须剖析您的应用程序用例,并做出最适合您应用程序性能特征的决策。

对于任何非平凡的二进制数据,您的确应该让核心数据管理它作为外部数据。这很简单。在数据模型GUI中,选中“存储在外部记录文件”中的框。