Обновление управляемого объекта iOS Core Data не сохранилось до sqlite db - PullRequest
0 голосов
/ 28 марта 2012

, когда я пытаюсь сохранить обновленный управляемый объект, изменения не сохраняются в базе данных sqlite. В appDelegate я создаю managedObjectContext и т. Д., И я передаю ссылку на это в detailviewcontroller, в котором происходит обновление. Интересно, является ли это основной причиной проблемы - кто-нибудь может посоветовать по этому поводу? Спасибо.

-(void)saveManagedObject:(id)sender
{
    NSManagedObjectContext *context = [self managedObjectContext]; // this was passed earlier

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"jobDescription = %@", self.jobDescription.text ];

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Job" inManagedObjectContext:context];
    [fetchRequest setEntity:entity];
    [fetchRequest setPredicate:predicate ];

    Job *reqJob = [[context executeFetchRequest:fetchRequest error:&error] lastObject];

    [reqJob setSummary:self.summary.text];

    if (![context save:&error]) {
        NSLog(@"Error updating %@ - error:%@",self.detailItem.jobDescription, error);
    }
}

1 Ответ

0 голосов
/ 29 марта 2012

ОК, я решил проблему, и если кто-то испытает то же самое, я подробно опишу решение здесь.Оказывается, я не создал класс Job NSManagedObject правильно (или я изменил его в какой-то момент, чтобы он не функционировал).

Как следствие, кажется, что Core Data не смог обнаружить этоизменение произошло в объекте и, следовательно, ничего не записало обратно в базу данных.Я обновил класс для этого объекта управляемого объекта через XCode, и все хорошо.

Спасибо за просмотр моего поста RA - извините, что это было для вас пустяком.

...