当我创建NSManagedObject子类时,该程序不想编译时出现一个未分类的错误-
"Command CompileSwiftSources failed with a nonzero exit code"
并且还会为每个子类文件创建一个错误,指出“
Multiple commands produce '/Users/myName/Library/Developer/Xcode/DerivedData/CoreDataError-cqtxdlgmsibvltbxuxzvrapubhlp/Build/Intermediates.noindex/CoreDataError.build/Debug-iphonesimulator/CoreDataError.build/Objects-normal/x86_64/Person+CoreDataProperties.o':
我试图将构建设置更改为“旧版构建系统”,但这也无济于事。
答案 0 :(得分:0)
在大多数情况下,这实际上是在您确实两次创建NSManagedObject类(或其属性)时发生的。
在您的情况下,由于使用了Editor菜单命令,您已经为Friend和Person类创建了代码。然后,您已将这些模块集成到项目中。因此,编译器会编译这些类。
但是
很可能您没有更改CoreData类的生成选项。您可以在检查器的“ CoreData”窗格中找到此选项(“类”部分,“代码生成”菜单)。它可以包含3个值:“手动/无”,“类定义”或“类别/扩展名”。
我想您已经使用了默认的“类定义”,这意味着当XCode编译您的模型时,它会为您的每个实体临时生成swift模块,然后编译这些模块。因此,最终得到2个名为“ Friend”的模块和2个名为“ Person”的模块。因此出现错误。
您要使用编辑器生成的模块,很可能是因为要修改它们,因此应将Codegen菜单设置为“ Manual / None”或“ Category / extension”。 您可以按实体进行操作。
一些一致的用例: