Как работает метод сохранения в Core Data?

Я следую руководству по основным данным, и они реализуют метод действия, чтобы предварительно сохранить данные в базе данных, используя ManagedObject, Я понимаю весь код в методе, кроме метода, который, как они говорят, преформует сохранение, и мне кажется, что метод проверяет, есть ли ошибка, и если да, то есть NSLog распечатать чтобы произошла ошибка. это метод:

- (IBAction)save:(id)sender {
    NSManagedObjectContext *context = [self managedObjectContext];

    // creating a new managed object
    NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Device" inManagedObjectContext:context];

    [newDevice setValue:self.nameTextField.text forKey:@"name"];
    [newDevice setValue:self.versionTextField.text forKey:@"version"];
    [newDevice setValue:self.companyTextField.text forKey:@"company"];

    NSError *error = nil;

    if (![context save:&error]) {
        NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
    }

    [self dismissViewControllerAnimated:YES completion:nil];
}

Очевидно, что-то происходит в [context save:&error] этот звонок, который я бы любил, если вы можете объяснить, что?

1 ответ

Решение

Призвание save: Сохраняет изменения, внесенные в граф объекта в определенном контексте, и поднимает его на один уровень выше.

Каждый контекст содержит свою собственную ревизию, и когда вы звоните save:изменения вносятся либо на один уровень выше (в родительский контекст), либо, если родительский контекст отсутствует, в координатор хранилища, чтобы их можно было сохранить методом, указанным при открытии координатора (SQLite, XML, двоичный файл и т. д.),

Изменения могут быть изменениями, вставками или удалениями.

Перед сохранением изменения объектов проверяются, и объекты уведомляются о процессе сохранения.

После сохранения в систему отправляются уведомления, чтобы сообщить различным компонентам (таким как контроллеры получения результатов, ваш код и т. Д.) О том, что была выполнена операция сохранения.

Другие вопросы по тегам