我正在开始一个新的项目(对Core Data非常陌生),并对如何管理Core Data和Asset Library中的图像感到好奇。我做了一些阅读,只是不清楚每件事是如何协同工作的。
有没有可能每个托管对象都有一个图像的“资源库”?即。是否可以使用核心数据数据填充资源库。
处理将大量图像附加到托管对象的最佳方式是什么?
如果有人能给我指出一篇文章/教程的方向,或者提供进一步的指导,我将不胜感激。
谢谢!
发布于 2014-01-15 13:08:24
是的,Core Data可以处理图像资产数据库以及图像本身的存储。Core Data有一个选项,允许它将大型二进制对象存储为文件,而不是存储在sqlite数据库本身中。核心数据将有效地存储有关图像的详细信息,并将其分类为相册、项目等。它对于在这些属性上进行搜索也很有用。
通常,您不会将大量图像附加到托管对象。图像将由托管对象表示,并且托管对象的属性之一将是图像( Core Data可能决定将其作为文件存储在某处)。
我认为如果你想使用iCloud来复制这个图像库,你可能就不走运了,因为我不认为核心数据会同步这些外部存储的图像文件。
https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS5.html
托管对象支持两个重要的新功能:有序关系和属性值的外部存储。如果您指定托管对象属性的值可以存储为外部记录,则Core Data会根据每个值试探性地决定是将数据直接保存在数据库中,还是将URI存储到它为您管理的单独文件中。
发布于 2015-08-26 20:01:35
如果您将图像存储在图像资产中,并且托管对象具有图像的“资源库”,那么您将在更新图像时遇到问题。即使您不想更新图像,为什么还要将其存储在核心数据中?解决方案是:在启动应用时,将图片放在图片资产中,并将图片的二进制数据存储在核心数据中。
this link可以帮助您轻松地将任何内容导入核心数据。
https://stackoverflow.com/questions/21128909
复制相似问题