CoreData: Очистить изменения из NSManagedObjectContext

Я создаю экземпляр объекта NSManagedObjectContext на уровне делегата приложения и использую его для всех моих UIViewController ] с. Вот код, который я использую для доступа к нему в одном из моих контроллеров представления:

        NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
        modelObj = (Model *) [NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:[appDelegate managedObjectContext]];

Теперь на этом экране у меня есть UITableView с 9 строками, и каждая ячейка имеет UITextField . Когда пользователь вводит значения в текстовые поля, я присваиваю их modelObj . Теперь у моего пользователя есть возможность отменить и отменить все изменения или сохранить их на диск. У меня код сохранения работает нормально. Но в случае, когда пользователь пытается отменить изменения, я не уверен, что делать.Кажется, не существует метода [managedObjectContext discardChanges] , который бы их все выбросил.

Я могу придумать несколько способов решить эту проблему.

  • Создайте новый экземпляр NSManagedObjectContext для каждого контроллера вместо совместного использования одного в приложении.
  • Или я мог бы создать группу NSString в моем коде и сохранить в них пользовательские значения и вызвать insertNewObjectForEntityForName: , только если пользователь нажмет кнопку «Сохранить».

Какой путь правильный? Или есть способ заставить NSManagedObjectConext отменить все внесенные в него изменения?

Спасибо,
Теджа.

11
задан Tejaswi Yerukalapudi 8 December 2011 в 00:55
поделиться