2015-03-30 10 views
0

Я использую следующий код для извлечения данных из базы данных ядра. Но когда я нажимаю другой контроллер представления на текущее представление и меняю текст на любое текстовое поле и нажимаю кнопку отмены без сохранения/обновления текста в БД. После нажатия кнопки отмены я выхожу из этого контроллера вида, а затем этот метод снова вызовет метод viewDidApear а затем этот отредактированный текст исходит из следующего метода. Но я не сохранил/не обновил этот текст в базе данных.Извлечение данных из основных данных

-(Notes *)fetchSpecificNoteWithNoteID:(NSString*)noteID 
    { 

     NSEntityDescription *roomObj = [NSEntityDescription entityForName:@"Notes" 
                inManagedObjectContext:[[self appDelegate] managedObjectContext]]; 
     NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
     NSError *error = nil; 
     NSPredicate *predicate =[NSPredicate predicateWithFormat:@"notesID=%@",noteID]; 
     [request setPredicate:predicate]; 

     [request setEntity:roomObj]; 
     NSArray *array = [[[self appDelegate] managedObjectContext] executeFetchRequest:request error:&error]; 
     if ([array count] && array) { 
      return [array objectAtIndex:0]; 
     } 
     return nil; 
    } 
+0

Вы реализовали какой-либо метод делегата текстового поля? Если да, то вы можете показать нам, какой код вы написали в этом методе. – pankaj

+0

что именно вы делаете на кнопке отмены! только pop viewController или anyThing else –

ответ

2

Изменения в управляемых объектах автоматически сохраняются в контексте. Единственное ручное сохранение, которое вам нужно сделать, это записать его в хранилище.

Где-то вы задаете новое значение для управляемого объекта. Если вы хотите отменить это, вам нужно каким-то образом отменить изменения.

+0

Спасибо, Renders, его работа. –

Смежные вопросы