Подтвердить что ты не робот

Недействительная переоценка классов CoreData

Я работаю с CoreData на объекте под названием "RoleName".

Проблема заключается в следующем: я нажимаю "Создать подкласс NSManagedObject" из моей модели и поэтому автоматически создает классы для моей сущности.

Однако в объявлении класса я получаю эту ошибку:

Недействительная переопределение "RoleName"

хотя у меня нет другого класса с тем же именем.

4b9b3361

Ответ 1

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

Итак, выполните следующие действия, чтобы получить это, как и раньше:

  • Удалите все классы, которые вы уже сделали для основных данных.
  • Установить класс .Module как текущий модуль продукта введите описание изображения здесь

  • Установите Class.codegen как Manual/None

введите описание изображения здесь

  • Теперь выберите свою сущность и создайте подкласс NSmanagedobject введите описание изображения здесь

  • Вы все настроены

Ответ 2

От Apple: Что нового в основных данных

Генерация автоматического подкласса Xcode

Xcode теперь поддерживает автоматическую генерацию подклассов NSManagedObject в инструменте моделирования. В инспекторе объектов:

Manual/None - это значение по умолчанию и предыдущее поведение; в этом случае вы должны реализовать свой собственный подкласс или использовать NSManagedObject. Категория/Расширение создает расширение класса в файле с именем ClassName + CoreDataGeneratedProperties. Тебе нужно объявить/реализовать основной класс (если в Obj-C через заголовок расширение может импортировать имя ClassName.h). Определение класса генерирует файлы подкласса с именем ClassName + CoreDataClass, а также файлы, созданные для Категория /Extension.

Сгенерированные файлы помещаются в DerivedData и перестраиваются в первой сборке после сохранения модели. Они также индексируются Xcode, поэтому команда нажимает на ссылки и быстро открывается по имени файла.

Вам не нужно вручную создавать подклассы для NSManagedObjects.

Я бы предположил, что вы удаляете файлы, созданные с помощью NSManagedObjects (переместите их в корзину), и перейдите к каждому объекту в инспекторе DataModel в разделе Codegen выберите: Manual / None и создайте, чем подклассы.