我从这里阅读了有关核心数据迁移的文章:http://www.objc.io/issue-4/core-data-migration.html。我不明白以下内容:
[destinationInstance performSelector:@selector(addAuthorsObject:) withObject:author];
destinationInstance是一本书NSManagedObject,作者是作者NSManagedObject。它们是相关的(一本书可以有多个作者,一个作者可以写多本书。)。上面的代码应建立这种关系。但是,该addAuthorsObject:在哪里声明?如何在我自己的项目中将关系NSManagedObject添加到另一个NSManagedObject?
最佳答案
您发布的代码与[destinationInstance addAuthorsObject:author]
相同; addAuthorsObject:
是一种由Core Data在运行时自动添加到NSManagedObject
子类中的方法,因为您已声明该对象具有称为authors
的多对多关系。
因此未声明addAuthorsObject:
;它是在加载架构时创建的。您看不到它,因为它实际上没有写在任何地方。
Xcode具有用于Core Data模式的图形编辑器;您应该使用它来添加额外的对象,属性和关系。然后,您可能想为模型对象创建自定义子类,但这实际上不是必需的。