我最近更新到Xcode 8并进行了自动快速3转换。然后我读到了关于新的Core Data自动生成的子类。我已经定义了类但想要切换,所以我删除了所有已定义的类,然后将所有实体定义的Codegen下拉切换为类定义,我的项目将不会构建。我相信这是因为它没有生成课程,但我不确定。这是我得到的错误:
gray
这只是最后一个实体错误,我的xcdatamodel文件中的所有实体都抛出了错误,命令部分只在错误日志的末尾显示一次。
我说我假设它不是生成文件,因为它说没有自动生成的类应该是这样的文件。
如何强制它们生成或如何解决此问题?我尝试了其他人所说的内容并进行了实体更改,保存了。更改了实体名称更改并保存。清理并重建。同样的事情一直在发生,我被困住了。在此先感谢您的帮助。
编辑:我检查了它正在谈论的目录,并且有生成的文件,所以idk为什么它没有建立..编辑2:这些类确实存在于目录中,但是它们不是以<unknown>:0: error: no such file or directory: '*my file path to the iphonesimulator/Debug-iphonesimulator/LoRezDungeon.build/DerivedSources/CoreDataGenerated/GameDataModel/.UAWeapon+CoreDataProperties.swift'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1
开头的,不知道为什么会发生这种情况,或者它是否是一个错误?
编辑3:嗯,我只是假设这是他们需要修复的错误,决定再次进行手动创建,这也是一件事:XCode 8 generates broken NSManagedObject subclasses for iOS 10
除此之外,我还要等待一个月的更新,然后再继续我的个人发展。这真令人沮丧...... :(
答案 0 :(得分:1)
仔细检查Codegen选项是否设置为“类定义”,有时在更改时不会保存,并将返回“手动/无”。这真是一种痛苦。
清理您的构建文件夹。
将#import语句更改为“MyClass + CoreDataClass.swift”
答案 1 :(得分:1)
该实体的“模块”组合框设置为“当前产品模块”,删除组合框的内容,使其恢复为默认的“全局命名空间”。
答案 2 :(得分:0)
我没有尝试过自动Swift 3转换,但通常你可以自动生成这些类型的文件。继续你的模型,单击菜单栏中的编辑器,然后选择“创建NSManages子类”。它应该再次产生每一堂课,也许它会有所帮助。