添加然后删除索引后核心数据错误“错误配置的实体:在复合索引属性中...不是有效属性”

Posted

技术标签:

【中文标题】添加然后删除索引后核心数据错误“错误配置的实体:在复合索引属性中...不是有效属性”【英文标题】:Core Data error 'Misconfigured Enity: In the Compound Indexes attribute...is not a valid property' after adding and then removing indexes 【发布时间】:2012-11-09 14:07:48 【问题描述】:

我正在为我的一个实体使用复合索引。我添加了 2(我只是单击了两次“添加”按钮)并立即删除了它们(通过单击删除按钮)。现在,当我构建时,我收到错误:

错误配置的实体:在实体 Entity 的复合索引属性中,不是有效属性。

我已经试过了:

    删除派生数据 清洁项目 关闭 Xcode 从模拟器中删除应用程序

重新创建对应的Entity类,重复上述操作

但错误仍然存​​在。有关如何解决此问题的任何想法?

编辑:我终于回滚到以前的版本,但我仍然很想知道出了什么问题。

【问题讨论】:

从设备/模拟器中删除应用 是的,忘了说我也这样做了。将在上面进行编辑。 我希望我能标记一个最佳答案,但我现在没有从事任何 Xcode 项目。 【参考方案1】:

我能够直接使用文本编辑器编辑 .xcdatamodeld/.xcdatamodel/contents 文件 (XML) 以删除受影响实体上的索引标签。

这似乎解决了问题。

【讨论】:

【参考方案2】:

在 Xcode 6 中,我解决此问题的方法是选择“Project”>“Clean Build Folder...”(按住“Option”键时菜单项从“Clean”更改)。

然后退出并重新启动 Xcode。

【讨论】:

【参考方案3】:

不是一个真正的答案,我认为@smw 方式是好的方式(清洁也是必要的) 但是今天,2015 年 6 月 11 日,随着苹果宣布 ios9 和新的音乐流媒体服务 - 这个愚蠢的错误仍然没有修复(xCode 6.3)。 3年多… 他们真的使用 CoreData 吗? :D

【讨论】:

【参考方案4】:

我遇到了同样的问题。似乎是 Xcode 的一个错误。

我不得不将<app>.xcdatamodeld/<app>.xcdatamodel/contents 文件恢复到最后已知的良好状态才能解决它。

【讨论】:

【参考方案5】:

我遇到了同样的问题。我通过清理、删除项目目录中的构建目录并删除 ~/Library/Developer/Xcode/DerivedData 下的相应 DerivedData 目录来修复它。绝对看起来像 Xcode 错误。

我之前在已删除的属性上有一个索引,但它似乎保留了索引,即使 Xcode 中的 UI 显示它已消失。数据模型下的内容文件也没有了。

【讨论】:

【参考方案6】:

可以通过在删除属性本身之前删除引用给定属性的任何复合索引来避免这种情况。

如果您的任何复合索引用于单个属性,请考虑在属性上使用“索引”属性,而不是复合索引列表 - 这样当您删除属性时,索引将自动删除。

【讨论】:

以上是关于添加然后删除索引后核心数据错误“错误配置的实体:在复合索引属性中...不是有效属性”的主要内容,如果未能解决你的问题,请参考以下文章

核心数据(添加唯一约束后):注释:修复丢失的删除传播以实现对多关系

如何在 Xcode 中删除 Fetch 索引元素

核心数据关系在删除后导致保存错误

添加第二个 EF 核心数据库后 Blazor 服务器端 docker 容器分段错误

ElasticSearch核心概念和文档的CRUD

Swift,CollectionView,致命错误:索引超出范围