CoreData: «NSInternalInconsistencyException», причина: «+ entityForName: не удалось найти объект с именем« DocumentLocations »в этой модели». - PullRequest
3 голосов
/ 05 октября 2011

Я неожиданно был сбит с толку странной проблемой. У меня довольно обширная модель данных CoreData, и я скопировал ее (и проект, содержащий ее) в новый проект для прототипа, над которым я работаю. У меня все получилось, и я смешивал и сопоставлял новые сущности и атрибуты.

Внезапно и без видимой причины внезапно появляется следующая ошибка:

'NSInternalInconsistencyException', причина: '+ entityForName: не удалось найти объект с именем «DocumentLocations» в этой модели. '

Я углубился в весь процесс создания NSManagedObjectContext, NSPersistentStoreCoordinator и NSManagedObjectModel и дошел до того, что стало совершенно ясно, что объектная модель не загружается. Я выполняю следующую команду:

_managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles: nil] сохранить];

Но когда я ищу сущности в модели после загрузки (этот метод создает модель из основного комплекта, если вы передаете nil в mergedModelFromBundles), там ничего нет.

Похоже, что мой файл xdatamodel не виден Xcode или симулятором. И я понятия не имею, почему бы и нет. Я попытаюсь вызвать проблему, явно загрузив ее через URL, но я не уверен, как это будет работать.

Есть какие-нибудь подсказки? Проблемы с CoreData могут быть совершенно непонятными. Мне удалось пройти через большинство из них через какое-то время, но это головокружение.

Редактировать: Алекс понял это. Мне остается только удивляться, как модель была удалена из списка «Источники компиляции» в XCode. Хотелось бы, чтобы Xcode был более надежным. Может действительно быть PITA.

Ответы [ 2 ]

3 голосов
/ 14 октября 2011

@ Алекс понял это.По какой-то причине xdatamodel был удален из настроек сборки.Я добавил его обратно, и это сработало.Я не очень понимаю, почему это было бы удалено в первую очередь.Он буквально исчезал между одной сборкой и следующей.

2 голосов
/ 15 ноября 2013

Исправлено это путем удаления приложения - с симулятора и моего iPhone.

Видимо, БД была добавлена ​​без сущностей в раннем запуске.Затем, как только я добавил сущности и все подключил, начал получать сообщение об ошибке, похожее на описанное выше ...

Удаление приложения позволило воссоздать БД и устранить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...