-1

我已经看到很多帖子展示了如何从 NSMutableSet 中添加或删除核心数据对象以实现“对多”关系。但是,如何更新现有的?具体来说,我在 ViewController 中显示一对多关系的“多”端的对象表。当用户单击表格行(代表这些对象之一)时,我想通过 prepareForSegue 方法将此特定对象发送到另一个 ViewController。对于关系的“一个”方面,我没有问题。但我在关系的“多”方面遇到了麻烦。您能否发布一个示例,说明如何将对象从关系的“多”端发送到另一个 ViewController,让 VC 更新它并将其保存到核心数据?

非常感谢!!!!

4

2 回答 2

1

如果你有一个关系并查询它,你会得到一个集合。

如果你想改变这个集合,而不是改变集合中包含的对象,你可以使用一个方便的方法:

例如

NSMutableSet *relatedObjects = [object mutableSetValueForKey:@"relationshipName"];
[relatedObjects addObject:anotherRelatedObject];

这样一来,您将获得一组可变的相关对象,而不仅仅是不可变的集合,并且您所做的任何更改都将在保存时保留。

于 2013-01-27T11:21:53.887 回答
1

只需更新有问题的对象本身!再简单不过了。

NSSet *employees = department.employees;
Employee *bride = [employees lastObject];
NSLog(@"%@", bride.lastName); // "Johnson"
bride.lastName = @"Smith";
[self.managedObjectContext save:nil];

NSLog(@"%@", [department.employees.lastObject lastName]); // "Smith"
于 2013-01-27T10:53:27.363 回答