Предикаты по энумам: фильтруем сам энум, не rawValue 🛟

🎯 $0.status == .ready внутри предиката SwiftData. Наконец-то. iOS 27 вычисляет сравнения #Predicate прямо на свойствах-энумах. Костыль «сохраним ещё и rawValue отдельной колонкой, чтобы было по чему фильтровать» уходит на пенсию, а модели сохраняют настоящие типы.

⚠️ Но осторожно: это рантайм-гейт, а не compile-time. Тот же самый предикат прекрасно собирается для более старых таргетов — и падает уже при выполнении. Так что фильтры по энумам оборачивайте в #available(iOS 27, *), компилятор тут не подстрахует. Работает для Codable-энумов с сырым типом. Энумы с ассоциированными значениями по-прежнему не запрашиваются, и внутри @Attribute(.codable) фильтровать тоже нельзя — там непрозрачный блоб.

#SwiftData #iOSDev #iOS27 #WWDC26

Предикаты по энумам: фильтруем сам энум, не rawValue 🛟 | Сетка — социальная сеть от hh.ru