我正在为我的一个实体玩复合索引。我添加了 2(我只是单击了两次“添加”按钮)并立即删除了它们(通过单击删除按钮)。现在,当我构建时,我收到错误:
错误配置的实体:在实体 Entity 的复合索引属性中,不是有效属性。
我已经尝试过:
- 删除派生数据
- 清洁工程
- 关闭 Xcode
- 从模拟器中删除应用程序
重新创建对应的Entity类,重复上面的
但错误仍然存在。关于如何解决这个问题的任何想法?
编辑:我终于回滚到以前的版本,但我仍然很想知道出了什么问题。
我能够使用文本编辑器直接编辑 .xcdatamodeld/.xcdatamodel/contents 文件 (XML) 以删除受影响实体上的索引标签。
这似乎解决了问题。
在 Xcode 6 中,我解决此问题的方法是选择“Project”>“Clean Build Folder...”(按住“Option”键时菜单项从“Clean”更改)。
然后退出并重新启动 Xcode。
不是一个真正的答案,我认为@smw 方式是一个好方法(清洁也是必要的)但是今天,2015 年 6 月 11 日,随着苹果宣布 iOS9 和新的音乐流媒体服务 - 这个愚蠢的错误仍然没有修复(xCode 6.3 )。3 年多……他们真的使用 CoreData 吗?:D
我有同样的问题。我通过清理、删除项目目录中的构建目录并删除 ~/Library/Developer/Xcode/DerivedData 下的相应 DerivedData 目录来修复它。绝对看起来像一个 Xcode 错误。
我之前在已删除的属性上有一个索引,但它似乎保留了索引,即使 Xcode 中的 UI 显示它已经消失了。数据模型下的内容文件也已经消失了。
我有同样的问题。似乎是 Xcode 的一个错误。
我必须将<app>.xcdatamodeld/<app>.xcdatamodel/contents
文件恢复到上次已知的良好状态才能解决它。
可以通过在删除属性本身之前删除引用给定属性的任何复合索引来避免这种情况。
如果您的任何复合索引用于单个属性,请考虑在属性上使用“索引”属性而不是复合索引列表 - 这样当您删除属性时,索引将自动删除。