2017-01-05 3 views
0

Интересно, почему мои основные данные останавливаются, чтобы сохранить изменения. Фактически, код выше работал несколько часов назад. Когда я пытаюсь распечатать ошибку, она печатает (null). Код ниже пользовательский метод для NSManagedObjectSubclass:MagicalRecord не сохраняет

-(void)bindWithModel:(MenuAPIModel*)model{ 

    self.basketId = [model.basketId integerValue]; 
    self.coreId = [model.itemId integerValue]; 
    self.name = [model name]; 
    self.orderId = [model.orderId integerValue]; 
    self.payedFrom = [model payedFrom]; 
    self.persons = [model persons]; 
    self.price = [model.price integerValue]; 
    self.price3 = [model.price3 integerValue]; 
    self.price12 = [model.price12 integerValue]; 
    self.status = [model status]; 

    [[NSManagedObjectContext MR_defaultContext] MR_saveOnlySelfWithCompletion:^(BOOL contextDidSave, NSError * _Nullable error) { 

    NSLog(@"error %@", error.localizedDescription); 

}]; 

Ошибка утратившим contextDidSave ДА. Но когда я пытаюсь получить доступ к сущности, он печатает нуль, а таблица SQL - пустая. Зачем?

ответ

1

Я предполагаю, что bindWithModel способ находится в NSManagedObject подкласс. Если да, то вы должны использовать managedObjectContext свойство из этого класса, а затем MR_defaultContext:

[self.managedObjectContext MR_saveOnlySelfWithCompletion:^(BOOL contextDidSave, NSError * _Nullable error) { (...) }]; 

Ранее это работает, вероятно, потому, что контекст из [NSManagedObjectContext MR_defaultContext] был таким же, как self.managedObjectContext.

+0

Благодарим за помощь, но она действительно сохранила и данные существуют. Проблема в том, что я не знаю, где она хранит данные. Файл базы данных в песочнице пуст –

+0

Если файл базы данных в песочнице пуст, значит, данные не были сохранены. Как вы подтверждаете, что данные были сохранены? Возможно, попытайтесь извлечь эти данные с помощью 'MR_defaultContext' (или какого-то нового контекста) в каком-то другом месте, убедитесь, что эти данные существуют. – Mateusz

+0

Я могу проверить его, зарегистрировав данные в консоли, и это правильно –

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