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