IOS:使用CoreData时在两个对象之间创建关系

时间:2016-10-19 11:51:02

标签: ios core-data relationship

我在核心数据,书籍和作者中有两个实体。作者可以拥有多本书,但书籍只能有一位作者。

因此,在作者实体中,我与书籍有很多关系。在书籍实体中,我与作者有“一对一”的关系。 Core Data似乎没有选择为您提供多对一的关系。如果这是问题,我会很感激有人让我知道。

在每个关系的NSManaged对象中,我有

书中的

@property (nonatomic, retain) Authors *author;

和作者

@property (nonatomic, retain) NSSet *book;

同样,我认为这是正确的,所以请告诉我这是不是

当用户创建新书对象时,我让他们将其与作者关联。此作者保存在名为_selectedAuthor

的属性中
@property (strong, nonatomic) Authors *selectedAuthor;

将书籍对象保存为书籍后,最后一项任务是将其与selectedauthor对象关联。我试着这样做:

_selectedAuthor.book = book;

但是,这会引发异常

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unacceptable type of value for to-many relationship: property = "book"; desired type = NSSet; given type = Books; value = <Books: 0x13615a9c0> (entity: Book; id: 0xd000000018600000 <x-coredata://34410921-1612-4B04-BC39-07F8ABD02E8C/Dare/p1560> ; data: {
    bid = 23;
   name = Exodus;
    activity = nil;
}).'

当我转身并尝试

book.author=_selectedAuthor;

编译器提供了错误'Property author not found on object of type NSManagedObject',尽管books类确实有一个作者属性,值得。

非常感谢有关如何解决此错误的任何建议

0 个答案:

没有答案