【问题标题】:Storing UIImage in Core Data with the new External Storage flag使用新的外部存储标志将 UIImage 存储在核心数据中
【发布时间】:2011-12-17 00:18:12
【问题描述】:

我知道 UIImage 在核心数据中的存储已经讨论过很多了,比如here,但那是 ios5 之前的版本。现在我们有了外部存储标志,你们认为将 UIImage 直接存储在实体中、作为单独的实体还是仍然在磁盘上是一个好主意?

Here 是解释外部存储选项的来源。

【问题讨论】:

    标签: iphone image core-data ios5


    【解决方案1】:

    Core Data Release Notes for iOS 5.0

    启用后,Core Data 会启发式地根据每个值决定是否 它应该将数据直接保存在数据库中或将 URI 存储到 它为您管理的单独文件。您不能根据 如果使用此选项,则为二进制数据属性的内容。

    从你的链接External Binary Data,启发式似乎是

    小于 1MB 的对象存储在数据库中。为了 更大的对象,创建一个外部文件和数据库 只是存储对它的引用。

    所以以下建议仍然有效:CoreData : store images to DB or not?

    • 1mb 存储在磁盘上并在 Core Data 中引用它

    该标志将 Core Data 设置为遵循该建议并自动将 >1MB 的图像存储为单独的磁盘文件。

    【讨论】:

    • 那么在这种情况下,我们可能应该把它放在一个单独的实体中,以防它在 100kb-1mb 范围内,因为外部存储不考虑这种情况?
    • 警告:外部图像存储存在一个错误,导致删除时崩溃,有时:stackoverflow.com/questions/7930427/…
    • 外部存储和迁移存在另一个错误。如果您尝试创建一个新模型然后使用轻量级迁移,那么您将丢失存储在外部文件中的所有“二进制数据”。
    • @zirinisp 有什么解决方法吗??我有一个应用程序的问题,我把它放在应用程序商店里,用户存储了这样的图像,我需要迁移。我可以使用手动迁移吗?
    • 我们可以访问用于将图像上传到其他服务的那个 url 吗?
    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多