如何修复Xcode 10错误'多个命令产生..'生成核心数据子类后

uqjltbpv  于 2023-03-31  发布在  其他
关注(0)|答案(3)|浏览(145)

我已经为我的项目创建了一个全新的核心数据模型,我想为它创建一些NSManagedObject子类。生成子类后,XCode抛出一些错误,这些错误引用了/DerivedData文件夹的路径。请参阅下面的步骤和错误图像:
第一节第一节第一节第一节第一节第二节第一节
我已经尝试过干净的构建,清除DerivedData文件夹,所有这些都是hoo-haa。我也尝试过手动创建生成的文件,但我仍然得到相同的错误。有人设法解决了这个问题吗?

ppcbkaq5

ppcbkaq51#

这是您的coredata相关问题的解决方案

根据你的第一张截图,右手边你可以看到Class下名为Codegen的字段,打开下拉列表并选择Manual/None,然后在Editor -〉Create NSManageObject Subclass**中再次生成文件,问题将得到解决。

tf7tbtn2

tf7tbtn22#

我在对我的DataModel进行了大量的编辑后遇到了同样的问题。我所有的实体都使用Codegen Category/Extension 和子类,突然我得到了这个神秘的错误:
错误:多个命令产生'/Library/Developer/Xcode/DerivedData/MyApp-futvjnnhiceyibabpbzhxltebhoq/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/MyApp/MyEntity+CoreDataProperties. m':
1.目标“MyApp”(项目“MyApp”):DataModelCodegen /Users/elisevanlooij/Documents/Project MyApp/MyApp/MyApp/MyApp.xcdatamodeld
1.目标“MyApp”(项目“MyApp”):DataModelCodegen /Users/elisevanlooij/Documents/Project MyApp/MyApp/MyApp/MyApp.xcdatamodeld
两天后,我发现了问题:数据模型中的实体名称和实体类名不再匹配,迫使Codegen为一个实体生成两个扩展。一旦我修复了这个问题,扔掉应用程序的Intermediates文件夹,在~/Library/Developer/Xcode/DerivedData中执行Product〉Clean Build Folder,一切都再次编译得很漂亮。
错误信息在技术上是正确的,但大部分没有帮助。DataModel接口应该在它发生时立即标记这一点,但人们只能梦想有一天苹果会适当关注核心数据。

qf9go6mv

qf9go6mv3#

Codegen有三个选项:

  • 手动/无。您可以使用编辑器〉“创建NSManagedObject子类”菜单来生成+CoreDataClass和+CoreDataProperties文件。
  • 类定义。默认选项。Xcode会在构建过程中自动生成这两个文件。您不应该在项目中添加这些文件。
  • Category/Extension. Xcode会自动生成扩展名为+CoreDataProperties的文件。所以如果使用“创建NSManagedObject子类”菜单生成这两个文件,则需要手动删除+CoreDataProperties文件,只在项目中保留+CoreDataClass文件。

相关问题