После миграции одно из моих числовых значений, которое должно быть ненулевым, теперь отображается как ноль. Если я не выполняю миграцию, значение сохраняет свое ненулевое значение.
Сначала я попытался установить числовое значение в управляемом объекте следующим образом:
[temp setNumUses:temp.numUses+1];
... но это вызвало «EXC_BAD_ACCESS», поэтому я изменил его на:
int hold = ((int)[[temp valueForKey:@"numUses"] intValue]);
hold++;
[temp setNumUses:[[NSNumber alloc] initWithInt:hold]];
... но после миграции этот код утверждал, что hold
был инициализирован как int со значением 0, когда перед запуском нового кода его значение было явно 1 или более (имеется в виду тестовый объект, который использовался только 1 раз).
Когда я не переношу базу данных Core Data, NSNumber прекрасно сохраняет свое значение при многих сохранениях контекста и завершении приложений.
Что я могу упустить? У меня есть обширный код, который изменяет значения измененных NSManagedObjects в базе данных, хранящейся в другом месте, но ни один из них не вмешивается в «numUses».
Мысли?