Не могли бы вы помочь мне со следующим
Я пишу приложение с использованием CoreData и имею два контроллера представления.
ControllerA представляет собой табличное представление и просто перечисляет данные
ControllerB - это контроллер представления, содержащий несколько UITextFields
Чтобы редактировать строку в ControllerA, я установил свойство в ControllerB, передавая мой объектный объект сущности CoreData
например.
viewControllerB.item = [self.fetchedResultsController objectAtIndexPath:indexPath];
Как только это отредактировано, содержимое элемента в ViewControllerB передается обратно ViewControllerA через делегат и сохраняется.
Это прекрасно работает. Бит, с которым я борюсь, - лучший способ добавить новый элемент в CoreData без настройки управляемогоObjectContext на ViewControllerB.
Я попытался передать новый объект с
ItemData *item = [NSEntityDescription insertNewObjectForEntityForName:@"ItemData" inManagedObjectContext:self.managedObjectContext];
viewControllerB.item = item;
это работает, если я вхожу в форму на ViewControllerB с данными, но если я отменяю представление и вытаскиваю его, у меня остается (нулевой) объект в CoreData.
Я также пытался создать экземпляр объекта CoreData ItemData с помощью стандартного init, но теперь понимаю, что это не сработает, поскольку CoreData не понимает контекст и также не имеет методов получения / установки для свойств.
Что лучше всего подходит для этой ситуации?
1) Должен ли я просто передать managedObjectContext в viewControllerB?
2) Создать класс модели для хранения значений из формы и передать их обратно, а затем обработать содержимое CoreData?
3) или есть правильный способ делать то, что я пытаюсь сделать?
Я свободно слежу за iOS Apprentice 2, чтобы иметь дело со раскадровками и т. Д., Но в этом классе модели передается взад и вперед, который, как я знаю, работает отлично, его сторона CoreData и является проблемой.
Надеюсь, вышесказанное понятно и что используемая мной терминология верна.
С нетерпением ждем любой помощи.