Удерживая нажатой клавишу выбора, перейдите в меню Продукт (Xcode 4) и выполните «Очистить папку сборки» ... затем отпустите клавишу выбора и выполните «Очистку» ...
Теперь сделайте Меню продукта > Анализ и убедитесь, что все кошерно.
Наконец, перейдите на левую панель программы просмотра проекта и нажмите на значок, который представляет весь вашпроект.В появившемся окне на главной панели в разделе «Цели» щелкните свое приложение.Теперь нажмите «Фазы сборки» и разверните «Копировать ресурсы комплекта».Убедитесь, что ваш файл TouristGuide.xcdatamodeld находится там.Затем разверните «Связать двоичные файлы с библиотеками» и убедитесь, что там присутствует «CoreData.framework» (если вы добавили базовые данные в существующий проект, который не начинался как проект с базовыми данными, скорее всего, он нетам).Затем разверните «Источники компиляции» и, конечно же, дважды проверьте, что все классы вашей модели находятся там (знаете, пользовательские подклассы NSManagedObject).
Говоря об этих классах моделей ...Теперь нажмите на свой TouristGuide.xcdatamodeld и выберите конфигурацию «По умолчанию».Убедитесь, что у всех классов, в которых указано «NSManagedObject» в столбце «Класс», НЕТ пользовательских классов, и если в них есть список пользовательских классов, убедитесь, что у вас есть файлы с эквивалентным именем .h и .m, соответствующие им.
10-к-1 это как-то связано с самим файлом модели.Однажды я изменил полный путь к файлу моей модели (это должен быть /Users/You/Documents/Developer/MyApp/MyModel.xcdatamodeld/MyModel.xcdatamodel).После того, как я изменил его, я не мог понять, как изменить его обратно, потому что MyModel.xcdatamodeld - это «пакетный» файл, а не папка.Конечно, в искателе вы можете сделать «Показать содержимое пакета ...», но диалоговое окно XCode для выбора местоположения файла отказалось перемещаться в содержимое пакета!Так что я не смог когда-либо повторно выбрать файл .xcdatamodel, который находится в файле .xcdatamodeld!Мне пришлось полностью воссоздать весь файл модели с нуля, это была огромная боль.Может быть, есть способ сделать это, но я не мог понять это.
Кроме того, два последних трюка.
Первый последний трюк, попробуйте на всякий случай сделать резервную копию вашего проекта,но это сработало для меня, когда я застрял: измените свой код с этого:
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"TouristGuide" withExtension:@"momd"];
на этот:
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"TouristGuide" withExtension:@"mom"];
... измените «momd» на «mom».
Затем удалите приложение с устройства или симулятора, «Очистить папку сборки», «Очистить», перестроить и повторно запустить проект.Это может дать вам ошибки, а может и нет.После этого измените его обратно на «momd» и повторите все эти шаги.Изменение этого параметра может привести к тому, что XCode удалит больше материала, чем в противном случае, если вы выполните «Очистить папку сборки» и переустановите приложение.Таким образом, когда вы переключаетесь обратно, он создает новый файл "momd".
Второй последний трюк:
Также никогда не помешает #import в ваших заголовках, просто на удачу.: D
Надеюсь, это поможет.Если бы кто-то сказал мне это сначала, это сэкономило бы мне много времени.