第一次在这里问一个问题,如果我没有提供足够的信息,请放轻松.基本上我的iOS应用程序的一部分允许用户拍摄将存储在Core Data存储中的图片.该属性是Transformable类型,我创建了一个NSManagedObject子类,我只是用它来将其image属性设置为用户提供的新图像.
我知道在Core Data中存储大文件是一个坏主意,这就是为什么当我看到Core Data实体中的image属性下的"Store in External Record File"选项时,我很兴奋.然而,我的应用程序性能说不然,在iPhone 5上花费几秒钟只加载一些图像(我知道听起来不是很多时间,但考虑到iPhone 5有多强大,旧设备可能需要更长的时间相同的数据).
我环顾四周,有人说Store in External Record File选项仅适用于OS X环境,即使它在iOS应用程序中可用.但是,我也在Apple的"iOS 5中的新功能"文档中看到了这一点(它是核心数据下的最后一项,接近结尾):
托管对象支持两个重要的新功能:有序关系和属性值的外部存储.如果指定托管对象属性的值可以存储为外部记录,则Core Data会根据每个值来决定是将数据直接保存在数据库中还是将URL存储到它管理的单独文件中为了你.
所以我的问题是,谁是对的?苹果公司在为iOS应用程序提供此选项时犯了错误,除非您使用的是Mac,否则它实际上什么也没做,或者它实际上是做了什么而且我没有以正确的方式配置它,或者是它做它应该做的事情,而且表现还不错?
我已经看到一些指南解释如何将大文件(如图像)存储为文件,并将URL保存在Core Data存储中,但由于这实际上是这个新选项正在做的,或者可能应该这样做,我不确定遵循这些指南是否会有所帮助.
如果之前有人问我,我真的很抱歉.通常情况下,我可以自己解决这个问题,但Core Data对我来说是全新的,我仍然不确定我是如何通过初始设置吱吱作响的.感谢您提供的任何帮助!
NSAttributeDescription该类的iOS docset 确实提到了这些allowsExternalBinaryDataStorage和setAllowsExternalBinaryDataStorage:方法,因此Apple几乎没有错误.
你之前这么说
该属性是可转换类型
但核心数据有一种Binary data类型.也许只有这一个与外部存储功能相关联.
如果不是这样,我们这里没有足够的信息:
此外,Apple文档指出:
核心数据启发式决定每个值...
您可以查看应用程序的沙箱,看看您的图片是否真的保存在CoreData之外.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
5524 次 |
| 最近记录: |