Я создаю экземпляр объекта NSManagedObjectContext
на уровне делегирования приложения и передавая его всем моим UIViewController
s. Вот код, который я использую для доступа к нему в одном из моих контроллеров View:
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
modelObj = (Model *) [NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:[appDelegate managedObjectContext]];
Теперь на этом экране у меня есть UITableView
с 9 строками, и каждая ячейка имеет UITextField
. Когда пользователь вводит значения в текстовые поля, я назначаю их в modelObj
. Теперь у моего пользователя есть возможность отменить и отменить все изменения или сохранить их на диск. У меня код сохранения работает нормально. Но в случае, когда пользователь пытается отказаться от изменений, я не уверен, что делать. Кажется, что не существует метода [managedObjectContext discardChanges]
, чтобы выбросить все это.
Я могу придумать пару способов решения этой проблемы.
- Создайте новый экземпляр
NSManagedObjectContext
для каждого контроллера вместо совместного использования одного приложения. - Или я мог бы создать кучу
NSString
в своем коде и сохранить в нем значения пользователя и вызватьinsertNewObjectForEntityForName:
только в том случае, если пользователь нажимает на сохранение.
Какой путь правильный? Или есть способ сделать NSManagedObjectConext
отменить все изменения, которые были сделаны для него?
Спасибо,
Тея.