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