我从这里阅读了有关核心数据迁移的文章: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模式的图形编辑器;您应该使用它来添加额外的对象,属性和关系。然后,您可能想为模型对象创建自定义子类,但这实际上不是必需的。

10-04 11:00