Как обновить основной объект данных в 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];

Таким образом, вы получите изменяемый набор связанных объектов, а не только неизменный набор, и любые сделанные вами изменения будут сохранены при сохранении.

Другие вопросы по тегам