我正在开始一个新项目(并且是Core Data的新手),并对如何在Core Data和Asset Library中管理图像感到好奇。我已经完成了一些阅读,我不清楚一切如何协同工作。
每个受管对象是否可以拥有图像的“资产库”?即。可以使用核心数据数据填充资产库。
处理附加到托管对象的大量图像的最佳方法是什么?
如果有人能指出我的文章/教程的方向或提供进一步的指导,那将非常感激。
谢谢!
答案 0 :(得分:0)
是核心数据可以处理存储图像资产数据库以及图像本身。 Core Data有一个选项,可以将大型二进制对象存储为文件,而不是sqlite数据库本身。核心数据可以有效地存储有关图像的详细信息,并将其分类为相册,项目等。这对于搜索这些属性也很有用。
通常,您不会将大量图像附加到托管对象。图像将由托管对象表示,托管对象的其中一个属性将是图像(Core Data可能决定将其存储为某个文件)。
如果您想使用iCloud复制此图像库,我认为您可能会运气不好,因为我认为Core Data不会同步这些外部存储的图像文件。
https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS5.html
托管对象支持两个重要的新功能:有序关系和属性值的外部存储。如果指定托管对象属性的值可以存储为外部记录,则Core Data会根据每个值来决定是将数据直接保存在数据库中还是将URI存储到它管理的单独文件中对你而言。
答案 1 :(得分:0)
如果您将图像存储在图像资源中,而受管对象具有图像的“资产库”,那么您将遇到更新图像的问题。 即使你不想更新图像,那么为什么要将它存储在核心数据中呢? 解决方案是:将图像存储在图像资源中,并在启动应用程序时将图像的二进制数据存储在核心数据中。
this link正在帮助您轻松导入任何核心数据。