Согласно примечаниям к выпуску, Xcode 9 добавляет поддержку извлеченных индексов:
«Редактор модели данных представляет собой унифицированный интерфейс для новой функции индексов выборки Core Data, а также для существующих функций индекса свойств и составного индекса сущностей. Старые модели данных переводятся в форму индекса выборки для редактирования и при необходимости сохраняются в старом формате файла. . Компиляция модели данных с целью развертывания ниже iOS 11, watchOS 4, macOS 10.13 или tvOS 11 продолжает создавать совместимую скомпилированную форму. (30843153)"
В моем проекте цель развертывания установлена на iOS 9 на данный момент, но я не могу скомпилировать свою модель CoreData, она дает мне следующие ошибки для каждой сущности, для которой установлен составной индекс:
Model.xcdatamodeld/Model.xcdatamodel:MyEntity|compoundIndex[0]: error: Expression requires a concrete result type.
Model.xcdatamodeld/Model.xcdatamodel:MyEntity|compoundIndex[0]: error: Expression attributes are not compatible with the current deployment target.
Model.xcdatamodeld/Model.xcdatamodel:MyEntity|compoundIndex[1]: error: Expression requires a concrete result type.
Model.xcdatamodeld/Model.xcdatamodel:MyEntity|compoundIndex[1]: error: Expression attributes are not compatible with the current deployment target.
Model.xcdatamodeld/Model.xcdatamodel:MyEntity: error: Fetch Indexes feature requires iOS deployment target 11.0 or later
Model.xcdatamodeld/Model.xcdatamodel:MyEntity: error: Fetch Indexes feature requires Xcode 9.0 tools or later
Любая идея, как исправить ошибку сборки?
ОБНОВЛЕНИЕ:
Xcode 9 правильно преобразует составные индексы в индексы выборки для всех случаев, кроме тех, которые созданы из отношений, как указано в разделе «Известные проблемы»:
В этой бета-версии редактор модели данных поддерживает создание индексов выборки только из атрибутов и выражений, а не из отношений. (32407895)
Затронутые индексы выборки выглядят следующим образом, и в раскрывающемся меню можно выбрать только атрибуты:
Однако обходной путь в документе не описан.