Ах, спасибо за разъяснение этого. Ну, я был готов принять значения по умолчанию, отсутствующие там, как компромисс для того, чтобы не делать миграцию вручную. ATM Я хочу просто устанавливать значение по умолчанию каждый раз, когда объект выбирается, что дает мне то, что мне нужно во время выполнения с ухудшением производительности.

ешно завершил легковесную миграцию на своей базовой модели данных.

Моя пользовательская сущность Vehicle получила новое свойство tyrePressure, которое является необязательным свойством типа double со значением по умолчанию 0,00.

Когда из магазина выбираются «старые» транспортные средства (транспортные средства, созданные до миграции), значение их свойства «tyrePressure» равно нулю. (Это ожидаемое поведение?)

Поэтому я подумал: «Нет проблем, я просто сделаю это в классе транспортных средств:»

- (void)awakeFromFetch {
    [super awakeFromFetch];
    if (nil == self.tirePressure) {
        [self willChangeValueForKey:@"tirePressure"];
        self.tirePressure = [NSNumber numberWithDouble:0.0];
        [self didChangeValueForKey:@"tirePressure"];
    }
  }

поскольку"Обработка изменений явно отключена вокруг" awakeFromFetch Я думал, что вызовы willChangeValueForKey и didChangeValueForKey пометят «tirePresure» как грязные.

Но они этого не делают.

Каждый раз, когда эти Транспортные средства выбираются из магазина, «tyrePressure» продолжает равняться нулю, несмотря на сохранение контекста.

Ответы на вопрос(2)

Ваш ответ на вопрос