WedX - журнал о программировании и компьютерных науках

Переименование объекта CoreData, представленное ClassName не переименовывается

Использование Xcode 6.2 и CoreData. Мне нужно было переименовать несколько имен сущностей и воссоздать объекты NSManaged, и я заметил, что новые управляемые объекты не получили такие же имена, как новые имена сущностей — использовалось старое имя.

Вот некоторые результаты diff в файле содержимого модели данных:

-    <entity name="SavedSignSets" representedClassName="SavedSignSets" syncable="YES">
+    <entity name="SavedSignSet" representedClassName="SavedSignSets" syncable="YES">

Это баг или я что-то не так делаю?


ОБНОВЛЕНИЕ: точная проблема заключается в следующем:

  1. У меня был существующий объект и соответствующий управляемый объект, сгенерированный Xcode 6.2. Сущность и управляемый объект имели одно и то же имя.
  2. Я изменил имя объекта.
  3. Я удалил соответствующие файлы управляемых объектов.
  4. Используя Xcode 6.2, я создаю управляемый объект для объекта, предполагая, что будет использоваться новое имя
  5. Xcode называет управляемый объект, используя старое имя объекта.
11.03.2015

  • Не совсем понятно, какую проблему вы видите. Проблема связана с именем класса новых экземпляров управляемых объектов или с именем объекта? Опишите проблему, с которой вы действительно сталкиваетесь, более подробно. 11.03.2015
  • Имя объекта не совпадает с именем класса. Имя класса по умолчанию равно имени объекта при первом создании объекта, но они могут быть другими, если вы хотите. 12.03.2019

Ответы:


1

выберите объект и проверьте инспектор объектов в инспекторе модели данных представления утилит (левое левое меню), каждый объект имеет поле имени и поле класса. Когда вы меняете имя в графическом интерфейсе, вы меняете только имя класса. Чтобы исправить ошибку, вы также должны изменить имя.

19.05.2015

2

Базовая структура данных в XCode немного сложна. Кажется, он запутался в перезаписи существующих автоматически сгенерированных файлов. Я не могу гарантировать, что это исправление, но вы можете попробовать вручную удалить старые файлы классов управляемых объектов из окна навигации XCode (убедитесь, что вы удаляете, а не просто удаляете ссылку), а затем снова создаете подкласс NSManagedObject. под видом нового файла.

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

(Кроме того, я использую XCode 6.1.1, поэтому я не на вашей точной версии)

11.03.2015
  • Я пробовал как уничтожать весь набор управляемых объектов, так и только те, которые я изменил, - ничего не изменилось. В итоге я отредактировал файл xcdatamodel/contents напрямую, чтобы внести изменения в параметр visibleClassName для рассматриваемого объекта. Также убедитесь, что ссылки на отношения были правильными (они были). Я собираюсь зарегистрировать ошибку по этому поводу. 11.03.2015
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]