为什么Xcode 9 beta不显示CoreData实体和属性的索引选项?

Trz*_*cje 20 indexing xcode core-data deprecated ios

在Xcode 9(beta 6)中,数据模型检查器(.xcdatamodeld文件)中缺少索引选项:

在此输入图像描述 在此输入图像描述

它们在Xcode 8中可见:

在此输入图像描述在此输入图像描述

你知道这个决定背后的原因是什么吗?

Mar*_*tin 60

正如@tomharrington所说,解决方案是在WWDC 2017视频中:索引的东西从10:32开始,演示在16:40开始.

它仍然可以通过Xcode9创建和索引:

  • 首先,选择您的实体,长按+(添加实体),然后选择添加获取索引.

第一步

  • 然后,适当地命名索引,选择要索引的属性(并选择升序或降序,具体取决于数据的组织方式) 第二步

  • 最后,正如视频中所解释的,这不会触发迁移,更新应用的用户将无法获取您的索引.如果要强制进行模型迁移,请通过选择实体并设置右面板>第三个选项卡>版本控制>哈希修改器来添加哈希修改器. 可选地,第三步

  • 您可能应该提到为索引选择"类型"的需要,而不是仅仅将其保留为"未定义",但Xcode不允许这样做,除非您先选择"类型",然后选择"属性".Xcode也可以在那里崩溃.多么棒的软件...... (8认同)
  • @m8labs 谢谢!我对无法更改的“未定义”列感到困惑。Xcode 真的永远让我惊叹不已。 (2认同)

Tom*_*ton 9

iOS 11中不推荐使用简单索引,Xcode 9 UI反映了这一点.这是来自以下文档NSPropertyDesciption:

isIndexed已弃用

在2017年WWDC 上,核心数据会议的新内容描述了一种新的索引API.给那个会话一个看.

  • 你能给出一个改进的线索吗?现在没时间观看35'视频只是添加一个愚蠢的索引(我知道我应该稍后再看).当然,Apple没有记录似乎与新API相关的属性(https://developer.apple.com/documentation/coredata/nsentitydescription/2887059-indexes). (4认同)
  • 观看.并回答分享信息. (3认同)
  • 您没有时间,但您希望其他人为您花费时间吗? (2认同)
  • 啊,好的一点.我发布时你已经得到了答案.但感谢提供链接;) (2认同)
  • 视频中此时讨论了新的索引API:https://developer.apple.com/videos/play/wwdc2017-210/?time = 628 (2认同)