insertNewObjectForEntityForName возвращает неправильный тип - PullRequest
4 голосов
/ 14 октября 2010

Последние несколько часов я дергал себя за волосы, пытаясь понять, почему insertNewObjectForEntityForName возвращает NSManagedObject, хотя я пытаюсь вставить сущность моего собственного типа.

ВещиЯ проверил тысячу раз:

  • Для имени класса установлено правильное значение в конструкторе диаграмм
  • Сущность имеет отношение «многие ко многим» с другой сущностью, создавая эту другую сущностьработает как положено, и я получаю правильно напечатанные выходные данные, клянусь, они идентичны

Каковы возможные причины, почему это может происходить?Я не знаю, где искать отсюда, и Google не сильно помог: (

РЕДАКТИРОВАТЬ (РАЗРЕШЕНО):

Это было связано с управлением версиями... Я удалил модель данных и воссоздал ее снова, и все начало работать, прежде чем было несколько версий, которые ранее использовались ... вздох иногда задавая вопрос, дает представление о том, как найти решение

Я все еще не понимаю, почему это происходит, хотя сейчас это решено

Ответы [ 5 ]

7 голосов
/ 19 ноября 2011

Я попал в похожую ситуацию с другим решением.Из-за серии неудачных событий (столкновение пространства имен вынудило изменить одну из моих сущностей), в результате я получил настраиваемую сущность, для которой в классе данных установлено значение по умолчанию NSManagedObject, а не собственный настраиваемый подкласс.

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

1 голос
/ 15 апреля 2011

У меня тоже было такое, но это была не испорченная модель, это была опечатка в моем определении сущности в файле модели.

В основном все сущности и атрибуты были правильными, но «ClassName» для моей сущности содержало опечатку.Это приводит к тому, что в Core Data достаточно информации для фактического чтения и записи сущности, но он не может создать экземпляр класса (так как на самом деле он не существует с именем, которое я опечатал)

0 голосов
/ 09 декабря 2013

У вас сегодня такая же проблема. После 2 часов стрижки волос я обнаружил, что я просто не добавляю исходный файл класса сущности в цель!

0 голосов
/ 06 декабря 2012

Сегодня я получил такую ​​же ситуацию после удаления некоторых исходных файлов подклассов NSManagedObject и их регенерации из редактора моделей в Xcode.

Я изучил файл project.pbxproj и обнаружил, что существуют некоторые несовместимые пары файлов id-source (возможно, ошибка XCode?).

Мне удалось исправить это, удаливвсе модели из проекта и добавьте их снова (и я также удалил некоторые ссылки на файлы из файла project.pbxproj вручную).

Спасибо за подсказку.

0 голосов
/ 18 апреля 2011

Это было связано с версионированием ... Я удалил модель данных и воссоздал ее снова, и все начало работать, прежде чем появилось несколько версий, которые ранее использовались ... вздох, иногда задавая вопрос, дает представление о том, какнайти решение

...