Как обновить основной объект данных в NSMutableSet?
Я видел много постов, показывающих, как добавить или удалить объекты основных данных из NSMutableSet для отношения "ко-многим". Тем не менее, как вы обновите существующий? В частности, я отображаю таблицу объектов со стороны "многие" отношения "один ко многим" в ViewController. Когда пользователь щелкает строку таблицы (представляющую один из этих объектов), я хотел бы отправить этот конкретный объект другому ViewController с помощью метода prepareForSegue. У меня нет проблем сделать это с "одной" стороной отношений. Но у меня возникли проблемы с этим со "многими" сторонами отношений. Не могли бы вы опубликовать пример того, как отправить объект со стороны "многие" отношения другому ViewController, сделать так, чтобы этот VC обновил его и сохранил в основных данных?
Большое спасибо!!!!
2 ответа
Просто обновите сам объект! Это не может быть проще.
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"
Если у вас есть отношения и запросить их, вы получите набор.
Если вы хотите изменить этот набор, а не изменять объекты, содержащиеся в наборе, вы можете использовать удобный метод:
Например
NSMutableSet *relatedObjects = [object mutableSetValueForKey:@"relationshipName"];
[relatedObjects addObject:anotherRelatedObject];
Таким образом, вы получите изменяемый набор связанных объектов, а не только неизменный набор, и любые сделанные вами изменения будут сохранены при сохранении.