Составные предикаты: динамические фильтры из массива 🌟

🧩 Пользовательские фильтры без монолитного #Predicate. У Foundation появились Predicate(all:) и Predicate(any:) — они объединяют массив предикатов через AND или OR. Практический сценарий очевиден: собираете массив из строки поиска, переключателей и чипов фильтра, а потом отдаёте результат в SwiftData. Раньше это был NSCompoundPredicate, теперь — нативный Swift.

⚠️ Два ограничения, о которые спотыкаются. Каждый вызов — либо целиком AND, либо целиком OR; смешать логику в одном нельзя, нужно вкладывать Predicate(any:) внутрь Predicate(all:). И все подпредикаты обязаны иметь один и тот же корневой тип. Бэкдеплоя нет: iOS 27 и новее.

#SwiftData #Foundation #iOSDev #iOS27

Составные предикаты: динамические фильтры из массива 🌟 | Сетка — социальная сеть от hh.ru