如何更新NSMutableSet中的核心数据对象?

时间:2013-01-27 02:58:59

标签: core-data one-to-many nsmutableset

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

非常感谢!!!!

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

如果您有关系并进行查询,则会返回一组。

如果要更改此集,而不是更改集中包含的对象,可以使用方便的方法:

例如

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

通过这种方式 - 您可以获得一组可变的相关对象,而不仅仅是不可变集,并且您所做的任何更改都将保存在保存中。