Я успешно завершил легкую миграцию по моей основной модели данных.
Мой пользовательский объект Автомобиль получил новое свойство "tirePressure" , которое является необязательным свойством типа double со значением по умолчанию 0.00.
Когда из магазина будут доставлены "старые" транспортные средства (транспортные средства, созданные до миграции), значение для их свойства "tirePressure" равно нулю. (Это ожидаемое поведение?)
Поэтому я подумал: "Нет проблем, я просто сделаю это в классе Vehicle:"
- (void)awakeFromFetch {
[super awakeFromFetch];
if (nil == self.tirePressure) {
[self willChangeValueForKey:@"tirePressure"];
self.tirePressure = [NSNumber numberWithDouble:0.0];
[self didChangeValueForKey:@"tirePressure"];
}
}
Так как "обработка изменений явно отключена вокруг" awakeFromFetch Я думал, что вызовы willChangeValueForKey и didChangeValueForKey будут отмечать "tirePresure" как грязные.
Но они этого не делают.
Каждый раз, когда эти транспортные средства извлекаются из магазина, "tirePressure" продолжает оставаться нулевым, несмотря на сохранение контекста.