mat*_*chi 4 database macos cocoa core-data objective-c
我想要一个可以由用户定制的模型.是否可以使用核心数据或是否有更好的解决方案?
谢谢matchi
Ps:它是mac os的应用程序!
这在Apple的Core Data Utility Tutorial的"创建托管对象模型"中进行了解释.通常,一旦引用了托管对象模型,就可以使用和类来自定义托管对象模型中的实体及其属性.NSEntityDescriptionNSAttributeDescription
但请注意,在大多数情况下,一旦修改托管对象模型,它将不再与现有的持久性数据存储兼容,这意味着您必须将数据从旧的持久性存储迁移到新的持久性存储.这绝对不是一种轻视的努力.
当然,正如评论中所提到的,Core Data也可以自动迁移数据,这一过程称为轻量级迁移.但总的来说,这样做
核心数据需要能够在运行时自行查找源和目标托管对象模型.(Core Data搜索由
NSBundlesallBundles和allFrameworks方法返回的包 .)然后,它必须分析对持久实体和属性的模式更改,并生成推断的映射模型.要使Core Data能够执行此操作,更改必须符合明显的迁移模式,例如:
- 简单添加新属性
 - 非可选属性变为可选
 - 可选属性变为非可选属性,并定义默认值
 
这是否适合您的用例,或者您是否希望允许您的用户更改托管对象模型,从而无法实现轻量级迁移?
在任何情况下,我强烈建议您在尝试允许用户修改Core Data模型之前先阅读以下文档.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1320 次  |  
        
|   最近记录:  |