我看过很多帖子,展示了如何在NSMutableSet中为“to-many”关系添加或删除核心数据对象。但是,您如何更新现有的?具体来说,我在ViewController中显示一对多关系的“多”面对象表。当用户单击表行(表示其中一个对象)时,我想通过prepareForSegue方法将此特定对象发送到另一个ViewController。用这种关系中的“一方”做这件事我没有问题。但我在与这段关系的“很多”方面做这件事时遇到了麻烦。您能否发布一个示例,说明如何将关系的“多”方面的对象发送到另一个ViewController,让VC更新它并将其保存到核心数据?
非常感谢!!!!
答案 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];
通过这种方式 - 您可以获得一组可变的相关对象,而不仅仅是不可变集,并且您所做的任何更改都将保存在保存中。