Я неожиданно был сбит с толку странной проблемой. У меня довольно обширная модель данных CoreData, и я скопировал ее (и проект, содержащий ее) в новый проект для прототипа, над которым я работаю. У меня все получилось, и я смешивал и сопоставлял новые сущности и атрибуты.
Внезапно и без видимой причины внезапно появляется следующая ошибка:
'NSInternalInconsistencyException', причина: '+ entityForName:
не удалось найти объект с именем «DocumentLocations» в этой модели. '
Я углубился в весь процесс создания NSManagedObjectContext, NSPersistentStoreCoordinator и NSManagedObjectModel и дошел до того, что стало совершенно ясно, что объектная модель не загружается. Я выполняю следующую команду:
_managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles: nil] сохранить];
Но когда я ищу сущности в модели после загрузки (этот метод создает модель из основного комплекта, если вы передаете nil в mergedModelFromBundles), там ничего нет.
Похоже, что мой файл xdatamodel не виден Xcode или симулятором. И я понятия не имею, почему бы и нет. Я попытаюсь вызвать проблему, явно загрузив ее через URL, но я не уверен, как это будет работать.
Есть какие-нибудь подсказки? Проблемы с CoreData могут быть совершенно непонятными. Мне удалось пройти через большинство из них через какое-то время, но это головокружение.
Редактировать: Алекс понял это. Мне остается только удивляться, как модель была удалена из списка «Источники компиляции» в XCode. Хотелось бы, чтобы Xcode был более надежным. Может действительно быть PITA.