构建失败——属性必须具有已定义的类型

Build failed--attribute must have a defined type

我的应用程序在构建时崩溃。这是完整的错误:

DataModelVersionCompile /Users/AAAAAAA/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-envirswdnpegjccdpxakhoykfnfq/Build/Products/Debug-iphonesimulator/XXXXXXXXXX.app/WMMGDataModel.momd XXXXXXXXXX/WMMGDataModel.xcdatamodeld
    cd "/Users/AAAAAAA/Desktop/Everything from DT 1:20:15/App projects/WMMG/XXXXXXXXXX"
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/momc -XD_MOMC_SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk -XD_MOMC_IOS_TARGET_VERSION=8.1 -MOMC_PLATFORMS iphonesimulator /Users/AAAAAAA/Desktop/Everything\ from\ DT\ 1:20:15/App\ projects/WMMG/XXXXXXXXXX/XXXXXXXXXX/WMMGDataModel.xcdatamodeld /Users/AAAAAAA/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-envirswdnpegjccdpxakhoykfnfq/Build/Products/Debug-iphonesimulator/XXXXXXXXXX.app/WMMGDataModel.momd

/Users/AAAAAAA/Desktop/Everything from DT 1:20:15/App projects/WMMG/XXXXXXXXXX/XXXXXXXXXX/WMMGDataModel.xcdatamodeld/WMMGDataModel 5.xcdatamodel:WMMGAccount.attribute: error: WMMGAccount.attribute must have a defined type
/Users/AAAAAAA/Desktop/Everything from DT 1:20:15/App projects/WMMG/XXXXXXXXXX/XXXXXXXXXX/WMMGDataModel.xcdatamodeld:0: error: Compilation failed for data model at path '/Users/AAAAAAA/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-envirswdnpegjccdpxakhoykfnfq/Build/Products/Debug-iphonesimulator/XXXXXXXXXX.app/WMMGDataModel.momd/WMMGDataModel 5.mom'
Command /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/momc failed with exit code 1

相关部分好像是:

/Users/AAAAAAA/Desktop/Everything from DT 1:20:15/App projects/WMMG/XXXXXXXXXX/XXXXXXXXXX/WMMGDataModel.xcdatamodeld/WMMGDataModel 5.xcdatamodel:WMMGAccount.attribute: error: WMMGAccount.attribute must have a defined type

我已经进入 xcdatamodel,但找不到任何未按类型正确定义的属性。我看到的一件可疑的事情是对 WMMGDataModel 5 的引用。我的模型已经升级到第 8 版,甚至找不到第 5 版。

这次崩溃是在最近一次自动迁移(使用 MagicalRecord)之后开始的,我在其中向其中一个实体添加了一个属性,然后重新创建了托管对象子类(是的,新的子类包含新的、正确定义的属性)。我以前添加过属性,但这是我第一次遇到这个问题。

我已经清理了这个东西,退出并重新启动 Xcode,仍然崩溃。有人有什么想法吗?我还删除了该项目的 DerivedData 文件夹。仍然不会构建。

编辑:

我刚刚重新创建了我所有的托管子类文件。仍然没有骰子——同样的错误信息。

编辑:

我尝试 运行将另一个项目作为对照,并收到此消息:

无法在模拟器中 运行 应用程序 运行ning (Domain = FBSOpenApplicationErrorDomain, Code = 4)

时遇到错误

所以我退出 Xcode 并重新启动模拟器 Xcode。同样的错误。

更多信息

我重新启动计算机并再次尝试,但仍然收到 "Build Failed" 相同的错误消息。

如果其他人 运行 喜欢这样的东西,我当然会很感激这里的一些指导......:)

最终编辑

请在下面的回答中查看解决方案...

我从未遇到过您描述的问题,但有一些建议。抱歉,如果您已经尝试过这些:

首先,在模型编辑器中,您能否访问您怀疑有问题的模型版本 5,例如:

如果存在,您有望修复属性错误。如果它没有出现在那里,您是否尝试过在项目导航器中右键单击并 select "Show in Finder":

然后在 Finder 中寻找版本 5?

好的,我决定删除我的 xcdatamodeld 并重建整个模型,最终解决了这个问题。一些关于如何做到这一点的研究在 this answer.

中产生了一种破坏性较小且风险较小的方法

希望它能帮助其他人解决这个问题。

感谢所有看过的人!