Дублирование символьной ошибки при добавлении подкласса NSManagedObject, дублирование ссылки

Я пытаюсь создать подклассы NSManagedObject (2 связанные сущности) автоматически в Xcode. Они генерируются следующим образом:

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

Однако, прежде чем я сделаю что-нибудь еще, когда я попытался создать и запустить его, возникает ошибка связи, как показано:

duplicate symbol _OBJC_CLASS_$_Photo in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photo+CoreDataClass.o duplicate symbol _OBJC_METACLASS_$_Photo in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photo+CoreDataClass.o duplicate symbol _OBJC_CLASS_$_Photography in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photography+CoreDataClass.o duplicate symbol _OBJC_METACLASS_$_Photography in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photography+CoreDataClass.o ld: 4 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я несколько раз пытался создать новые проекты и сделать то же самое. Мое первоначальное намерение состоит в том, чтобы добавить некоторые специальные методы в подклассы. Но когда я добавляю что-либо, например, Photo+CoreData.h/m , появляется такая же ошибка, как и выше.

Я нашел несколько ответов о «двойном включении» или «сохранить файлы в неправильный каталог», но я этого не делал. Кто-нибудь есть об этом?

5 Solutions collect form web for “Дублирование символьной ошибки при добавлении подкласса NSManagedObject, дублирование ссылки”

Редактирование: благодаря некоторой помощи от @iPeter найдено следующее:

После выполнения редактора> Сгенерировать файлы NSManagedObject, если вы удалите файлы перед созданием, ваш проект не будет создавать никаких проблем.

Удалите эти файлы

Затем #import «myManagedObjectName + CoreDataClass.h» (где имя MO – это имя инспектора объекта в основных данных) в любые классы, в которых вам требуются управляемые объекты.

Другими словами, вам не нужны никакие файлы ManagedObject в вашей папке. Xcode сохраняет сгенерированные файлы в папке Derived Data.

Если по какой-то причине вам нужны эти файлы, чтобы они оставались в вашем каталоге файлов, будет применено следующее обходное решение. Перейдите в свою целевую аудиторию и удалите источники CoreDataClass в источниках компиляции.

До

Оставив вас этим:

После

  • Большинство новых атрибутов / отношений, которые я добавил после первоначального создания подклассов ManagedObject, были доступны как свойства после сборки. В одном случае, когда я переименовал существующее отношение, мне пришлось снова сделать Редактор> Сгенерировать подклассы NSManagedObject, а затем я повредил новые файлы в моей папке, построил, и все работало нормально.

Просто написал сообщение в блоге, которое включает эту информацию для любого заинтересованного.

Если вы не создаете подкласс подпрограмм автоматически, то не забудьте проверить настройки «Codegen» для объекта Entity in Data Model Inspector:

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

Вы должны удалить все эти объекты, изменить «Codegen» на «Manual / None» для них в Data Model Inspector и снова сгенерировать объекты. Он работает хорошо! Вам не нужно удалять файлы + CoreDataClass.h из источника компиляции. Вам не нужно отмечать объекты как абстрактные. Вам не нужно создавать классы самостоятельно. Вы должны изменить только настройки «Codegen» и автоматически регенерировать объекты. введите описание изображения здесь

Вам нужно удалить собственный класс, связанный с CoreData, сгенерированный вами, и вы можете сохранить строку #import с этими классами, теперь все эти файлы будут генерироваться автоматически при создании проекта.

Недавно я попробовал вышеуказанный ответ, и он не прошел. Так или иначе, Xcode все еще генерировал файлы.

Я решил это, используя следующий метод:

  • Отметить все объекты как Абстрактные
  • строить
  • Удалить флаг
  • строить
  • Успех!

Это звучит как ошибка в Xcode …

  • Развертывание IOS с помощью Ionic
  • Как удалить профиль подготовки персональной команды XCode
  • Нет видимого @interface для «NSDate» объявляет селектор «initWithString:»
  • Объект удаления данных с объектами Swift 3
  • Отладка WatchKit на реальном Apple Watch - ничего не происходит
  • Не удалось создать профиль подготовки iOS - для бесплатного профиля
  • Ошибка Xcode 7 при попытке протестировать приложение на устройстве
  • Массив препроцессора в родительском проекте для использования в подпроекте
  • Как отключить свойство автосинхронизации свойств в Xcode 5?
  • Как создать расширяемое текстовое поле / метку в swift?
  • Модуль iOS - Xcode похож на Android
  • Interesting Posts

    Изменение местоположения segue создает черный экран в симуляторе ios

    как добавить конкатенировать несколько NSString в одну строку в iphone

    Swift: имя селектора, найденное в текущих регистрах аргументов: release

    Сетевая сеть от iOS до android

    Как я могу извлечь параметры из нестандартного объекта URL NSString?

    iOS7, backgroundImage для UISearchBar

    Запись пользовательского наложения на iPhone

    Использование автоматической компоновки в UITableViewCell, содержащей UICollectionView с асинхронной загрузкой изображения

    Как форматировать данные из строковой переменной

    Настройка панорамирования в OpenAL (iOS)

    Ошибка дублирования символов для архитектуры при подклассе

    Как можно вернуться к предыдущему виду программно без UINavigationController?

    Масштаб UIPinchGestureRecognizer в горизонтальном и вертикальном направлениях отдельно

    Ошибка Xcode 7 при отладке

    window.outerWidth – 0 в Safari на iOS 10 beta

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.