1

我目前正在开发一个应用程序,我想在其中存储一个UIImage我的核心数据实体。我已经读到 iOS 5UIImage现在符合一个名为 的协议,因此不再需要NSCoding转换方法 from 。NSData我已将图像属性设置为可变形,当我检索图像时,我的程序运行良好。

这是一种安全可靠的方法来存储UIImage允许未来低于 30 秒的迁移吗?在性能方面会很好吗?我还阅读了有关二进制数据属性类型的信息,它允许将文件存储在文件系统中,而不是数据库中。如果这是一个更好的选择,人们将如何实施它?

4

2 回答 2

1

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

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

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

对于任何重要的二进制数据,您确实应该让 Core Data 将其作为外部数据进行管理。这很简单。在数据模型 GUI 中,选中“存储在外部记录文件中”框。

于 2012-08-07T02:53:12.237 回答
0

抱歉,我没有注意到您说您已经完全了解如何对图像进行编码。我不建议将它们存储在数据库中,但祝你好运。

以前:使用新的外部存储标志将 UIImage 存储在核心数据中

该线程上关于错误的评论表明,自己将图像存储在文件系统上可能仍然是一个安全的想法。

于 2012-08-07T02:52:18.667 回答