Core data 多对多实体和NSPopUpButton

Core data 多对多实体和NSPopUpButton,core-data,many-to-many,nsarraycontroller,nspopupbutton,Core Data,Many To Many,Nsarraycontroller,Nspopupbutton,全部 实体: [Library {title}] <-->> [Book {title}] <<-->> [Author {name}] 表格: *按钮从NSArrayController获取内容[作者,无内容集] 选项] **表从另一个NSArrayController[作者]获取内容 将contentset选项设置为Library.books] 问题: 如何将Author添加到Book.authors from Author实体? (对任何书籍使用

全部

实体:

[Library {title}] <-->> [Book {title}] <<-->> [Author {name}]
表格:

*按钮从NSArrayController获取内容[作者,无内容集] 选项]

**表从另一个NSArrayController[作者]获取内容 将contentset选项设置为Library.books]

问题:

如何将Author添加到Book.authors from Author实体? (对任何书籍使用以前的作者)

1) 设置PopUpButton属性

   {
     Content: NSArrayController [Authors], ArrangedObjects
     Content Values: NSArrayController [Authors], ArrangedObjects, name
     Selected Index: NSArrayController [Authors], selectionIndex
   }
2) 加

并将其与NSArrayController链接

3) 添加此代码并链接到按钮:

- (IBAction)insertSelectedItem:(id)sender
{
    MOAuthor *author = self.authorsController.content[self.authorsController.selectionIndex]; // get current (selected) author

    MOBook *book = self.bookController.content[self.bookController.selectionIndex]; // get current guide

    [book addAuthorsObject:author]; // add step into guide

    NSError *err = nil;

    [book.managedObjectContext save:&err]; // save all
}
MOBook,MOAuthor-从实体创建的ManagedObject类

   {
     Content: NSArrayController [Authors], ArrangedObjects
     Content Values: NSArrayController [Authors], ArrangedObjects, name
     Selected Index: NSArrayController [Authors], selectionIndex
   }
@property (assign) IBOutlet *authorsController, *bookController; 
- (IBAction)insertSelectedItem:(id)sender
{
    MOAuthor *author = self.authorsController.content[self.authorsController.selectionIndex]; // get current (selected) author

    MOBook *book = self.bookController.content[self.bookController.selectionIndex]; // get current guide

    [book addAuthorsObject:author]; // add step into guide

    NSError *err = nil;

    [book.managedObjectContext save:&err]; // save all
}