'文件名用于区分同名的私有声明'错误

Swa*_*ant 46 xcode core-data nsmanagedobject ios

我在Swift中的Xcode 8.1中生成NSManagedObject时遇到此错误.

:0:错误:文件名"DemoOne + CoreDataClass.swift"使用两次:'/ Users/Swasidhant/Desktop/demo/DemoOne + CoreDataClass.swift'和'/ Users/Swasidhant/Library/Developer/Xcode/DerivedData/demo_again- hiinrbwwbmyfbrbctsfdzvudkkuy/Build/Intermediates/demo again.build/Debug-iphonesimulator/demo again.build/DerivedSources/CoreDataGenerated/Model/DemoOne+CoreDataClass.swift':0:注意:文件名用于区分具有相同名称的私有声明:0 :错误:文件名"DemoOne + CoreDataProperties.swift"使用了两次:'/ Users/Swasidhant/Desktop/demo/DemoOne + CoreDataProperties.swift'和'/ Users/Swasidhant/Library/Developer/Xcode/DerivedData/demo_again-hiinrbwwbmyfbrbctsfdzvudkkuy/build /intermediates/demo again.build/Debug-iphonesimulator/demo again.build/DerivedSources/CoreDataGenerated/Model/DemoOne+CoreDataProperties.swift':0:注意:文件名用于区分具有相同名称的私有声明Command/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefaul t.xctoolchain/usr/bin/swiftc失败,退出代码为1

我搜索了这个并得到了答案,说该文件可能在项目中出现两次,这不是我的情况.我遇到的另一个解决方案是从构建阶段删除文件并再次添加.那也行不通.是一些构建设置配置错误?或者是其他东西?

以下是使用Xcode 8.1创建的演示项目的链接,并显示此问题: - https://www.dropbox.com/s/xwyzhshktb2hqe7/demo2.zip?dl=0

Mid*_* MP 110

由于Xcode自动子类生成功能,问题正在发生.

根据核心数据的新内容

Xcode自动子类生成

Xcode现在支持在建模工具中自动生成NSManagedObject子类.在实体检查员中:

  • 手动/无是默认和以前的行为; 在这种情况下,您应该实现自己的子类或使用NSManagedObject.
  • 类别/扩展在名为ClassName + CoreDataGeneratedProperties的文件中生成类扩展.您需要声明/实现主类(如果在Obj-C中,通过标头扩展可以导入名为ClassName.h).
  • "类定义"生成名为ClassName + CoreDataClass的子类文件以及为"类别/扩展"生成的文件.

生成的文件放在DerivedData中,并在保存模型后在第一个版本上重建.它们也被Xcode索引,因此命令单击引用并按文件名快速打开.


因此,为了解决您的问题,您需要将Codegen字段值设置Manual/None为如下所示: 核心数据Codegen

  • 相反,这并不能解决这个问题.再次打开项目后,此字段也会重新设置. (7认同)
  • 要完全解决此问题,请将"模块"值(在Codegen上方)设置为"当前产品模块" (5认同)
  • @DanielBocksteger:我已经下载了链接的项目并执行了这一步,它对我有用.在尝试上述步骤后,您是否面临同样的错误? (2认同)

sup*_*rm0 12

这是我为解决这个问题所做的,

  1. 在数据模型中选择您的实体
  2. 模块设置为当前产品模块
  3. Codegen保留为类定义,手动/无也可以
  4. 选择Editor> Create NSManagedObject Subclass


Nav*_*han 6

可以帮助别人,去项目编译源删除额外的引用(如果有的话).


Yog*_*ngh 5

选择代码数据模型,然后选择实体,将“ Codegen”的值更改为“手动/无”。

它会工作。