2013-07-23 3 views
1

У меня проблема с Core Data. У меня есть табличный вид viewcontroller1, который заполняется из массива, заполненного данными в моей модели Core Data. Когда ячейка выбрана, она нажимает сегмент до viewcontroller2, где вы можете просмотреть сохраненные данные. Оттуда у меня есть кнопка под названием «edit», которая, когда она выбрана, выполняет модальный переход до viewcontroller3, где вы можете редактировать эти данные. Вот код для сохранения отредактированных данных.Основные данные не сохраняются

//editModel 

[self.editModel setValue:self.editNameTextField.text forKey:@"name"]; 
[self.editModel setValue:self.editTextView.text forKey:@"text"]; 
[self.editModel setValue:[NSDate date] forKey:@"date"]; 

NSError *error; 
if (![[self.delegate managedObjectContext] save:&error]) 
{ 
    NSLog(@"Can't save the edit: %@", [error localizedDescription]); 
} 

if (self.delegate) 
    [self.delegate dismissEdit:self]; 
else 
    NSLog(@"There is no delegate"); 

Однако всякий раз, когда я пытаюсь вызова этого, я получаю NSLog: Can't save the edit: (null)

viewcontroller2 отражает изменение; как и вид таблицы в viewcontroller1. Но, когда я выхожу из iOS Simulator и запускаю его снова, я получаю данные только до процесса редактирования. Помогите?

+0

ли делегат возвращающегося контекст управляемого объекта? – Wain

+0

@Wain - Да, это так. –

+3

Проверено? Попробуйте '[self.editModel.managedObjectContext save: & error]' – Wain

ответ

0

Скорее всего, контекст управляемого объекта недоступен delegate. Вместо того, чтобы получить его из delegate, каждый управляемый объект имеет ссылку на контекст управляемого объекта, который он добавляется, так что вы можете сделать:

[self.editModel.managedObjectContext save:&error] 
Смежные вопросы