2015-02-12 98 views
0

最近,我正在尝试优化我的代码。我发现我的所有实体都具有名为标识符和所有者的属性,所以我想创建一个实体作为它们的包含标识符和所有者的父项。CoreData:创建一个新实体作为旧实体的父代

enter image description here

以下为的结果,所有的对象从名为SRModel母体,其具有标识符和所有者属性继承。

enter image description here

然而,当我删除所有这些冗余性,持久性存储是无法自动迁移。 我该如何解决这个问题?我必须自己做移民吗? 有没有简单的方法可以做到这一点?

+0

不是你的问题的答案,但FYI:http://stackoverflow.com/a/27626521/131779 – 2015-02-12 01:33:35

+0

@AndyRiordan非常感谢你!也许我会创建独立于旧版本的新实体... – 2015-02-12 01:43:59

回答

0

根据苹果的Core Data Model Versioning and Data Migration Programming Guide,你不能自动做到这一点。

但是,您不能合并实体层次结构;如果两个现有实体在源中不共享父公共共享,则它们不能共享目标中的共同父代

注意Andy Riordan关于继承的观点。不要只听他的话,在旧模型和新模型下查看生成的.SQLite文件。添加一个只有两个公共属性的父实体将使您的实体和支持表变大,而没有性能优势。如果您真的想要注意两个常见元素,请使用协议将它们调出。

相关问题