2017-01-07 2 views
1

Я пытаюсь создать nsmanagedobject (User), перейдя в меню редактора, а затем выберите Создать NSManagedObject Подкласс ... это создает четыре файла:Создание NSManagedObject подкласса приводит к ошибке линкер дублированных символов

User+CoreDataClass.h 
User+CoreDataClass.m 
User+CoreDataProperties.h 
User+CoreDataProperties.m 

В один из моих viewcontrollers импортировать User + CoreDataClass.h, а затем этот код:

//create new account entity 
    User* thisUser = [NSEntityDescription 
          insertNewObjectForEntityForName:@"User" 
          inManagedObjectContext:self.myController.myDataManager.managedObjectContext]; 

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

duplicate symbol _OBJC_CLASS_$_User in: 
    /Users/xxxxxxxxxxxx/Library/Developer/Xcode/DerivedData/StarDate-fzkjccyoiwhfvvczdwkvkmtbioqw/Build/Intermediates/StarDate.build/Debug-iphonesimulator/StarDate.build/Objects-normal/x86_64/User+CoreDataClass.o 
duplicate symbol _OBJC_METACLASS_$_User in: 
    /Users/xxxxxxxxxxxx/Library/Developer/Xcode/DerivedData/StarDate-fzkjccyoiwhfvvczdwkvkmtbioqw/Build/Intermediates/StarDate.build/Debug-iphonesimulator/StarDate.build/Objects-normal/x86_64/User+CoreDataClass.o 
ld: 2 duplicate symbols for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

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

Благодаря

ответ

1

Вы вручную создавая NSManagedObject подклассы, что Xcode 8 уже созданы для вас и таким образом получить дублированные символы.

Вы можете найти подробную информацию, как решить эту проблему в this answer.

+0

Спасибо, я на самом деле просто прочитал решение в другом потоке. Дай тебе удар. :) – PruitIgoe

Смежные вопросы