如何在Xcode 9.2的Core Data模型中删除Fetch Index Element?
解决Xcode 9.2 Core Data模型中Fetch Index Element无法删除的问题
我之前也碰到过这个烦人的问题!在Xcode 9.2里给Core Data实体创建Fetch Index Element后,找不到直接删除的入口,还一直弹出"A fetch index should have one or more elements ."的警告,确实挺闹心。下面是我亲测有效的两种解决办法:
方法一:通过Xcode可视化编辑器删除
- 打开你的
.xcdatamodeld文件,选中出现警告的那个Fetch Index(在实体的Fetch Indexes列表里) - 点击Xcode右上角的「Data Model Inspector」(就是那个类似尺子图标的检查器按钮)
- 在检查器面板里找到Fetch Index Elements区域,选中你想删除的那个元素
- 按下键盘上的
Delete键,或者右键点击元素选择「Delete」即可 - 注意:如果删除后整个Fetch Index没有任何元素了,一定要把这个空的Fetch Index也删掉(同样选中后按Delete),否则警告还会存在
方法二:直接编辑模型文件的XML(彻底解决)
如果可视化方法不管用,可以直接修改模型的底层XML文件:
- 右键你的
.xcdatamodeld文件,选择「Show Package Contents」 - 在弹出的文件夹里,打开当前使用的
.xcdatamodel文件(如果有多个版本,选带有当前标记的那个) - 用任意文本编辑器打开这个文件,找到包含
<fetchIndex>的代码块,它的结构大概是这样的:<fetchIndex name="YourIndexName"> <elements> <element property="yourProperty" type="binary"/> </elements> </fetchIndex> - 删除你不需要的
<element>标签;如果整个索引已经没有元素了,直接删掉整个<fetchIndex>块 - 保存文件后回到Xcode,它会自动重新加载Core Data模型,警告应该就会消失了
内容的提问来源于stack exchange,提问作者Jaiden Ryder
相关产品推荐
相关产品推荐

