Индексы SwiftData Заметка

Индексы SwiftData

SwiftData, представленный в iOS 17, изначально не поддерживал индексацию базы данных. iOS 18 исправил этот недостаток, добавив возможность использования индексов выборки для ускорения поиска в базе данных. Core Data давно поддерживает добавление индексов выборки, которые ускоряют поиск в базе данных по определенным свойствам. В редакторе модели Core Data в Xcode вы можете добавлять индексы выборки, выбрав сущность и используя опцию "Добавить индекс выборки". Однако, несмотря на то, что iOS 18 добавил поддержку индексов выборки в SwiftData, Xcode 16 все еще выдает предупреждение о том, что индексы выборки не поддерживаются. Чтобы добавить индексы выборки SwiftData, используйте макрос #Index для указания пути к ключу для каждого индекса. Вы можете использовать макрос #Index только один раз для каждого класса модели, поэтому все индексы должны быть перечислены в одном макросе. Также можно добавлять составные индексы, которые полезны для сортировки элементов с дублирующимися свойствами. Для получения дополнительной информации обратитесь к документации WWDC24 по теме "Что нового в SwiftData".