В соответствии с примечаниями к выпуску Xcode 9 добавляет поддержку извлеченных индексов:
"Редактор модели данных представляет собой унифицированный интерфейс для базовых данных новая функция индексов выборки, а также ее существующий индекс свойств и сущностей. Старые модели данных переводятся на выбрать форму индекса для редактирования и сохранить в старый формат файла, когда необходимо. Компиляция модели данных с целью развертывания ниже, чем 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
Любая идея, как исправить ошибку сборки?
UPDATE
Xcode 9 корректно преобразует составные индексы в индексы выборки для всех случаев, кроме тех, которые созданы из отношений, как указано в разделе "Известные проблемы":
Редактор модели данных поддерживает только создание индексов выборки из атрибутов и выражений в этой бета-версии, а не из отношений. (32407895)
Отраженные индексы выборки выглядят так: в раскрывающемся меню можно выбрать только следующие атрибуты:
Однако в документе нет обходного пути, описанного в документе.