tg-me.com/iosdev/497
Last Update:
NSPredicate в Swift: определение, примеры и один интересный факт
Предикаты используются при построении поискового запроса или для фильтрации в памяти с помощью определения логических условий.
Хотя предикаты принято создавать непосредственно из экземпляров NSComparisonPredicate
, NSCompoundPredicate
и NSExpression
, часто предикаты создаются с помощью обычных (форматных) строк.
Рассмотрим некоторые способы задания предикатов.
⚪ Простые сравнения. Пример: jobTitle == "Team Lead"
или channelName == "iOS Dev".
⚪ Поиск без учета регистра и диакритических знаков, например, name contains[cd] "Bruce".
💡Интересный факт: здесь c это case-insensitive (без учёта регистра), а d - diacritic insensitive (игнорим диакритический знак, то есть если в поиске будет два символа c и ç, они попадут в условие).
⚪ Логические операции, например firstName like "Ivan"
или lastName like "Ivanov".
Нельзя не уточнить, что like
сработает как ==
для этого условия.
⚪ Ограничения временного диапазона, например, date between {$YESTERDAY, $TOMORROW}
.
⚪ Относительные условия, например, group.name like "work*"
.
⚪ Агрегатные операции, например @sum.items.price < 1000
.
БОНУС
🟢 Ключевое слово MATCHES
можно использовать для поиска с помощью регулярки.
Пример: NSPredicate(format: "name MATCHES %@", query)
.
🟢 А для поиска строк, начинающихся или заканчивающихся заданным условием, пригодятся BEGINSWITH
и ENDSWITH
.
📖 Полный справочник по синтаксису можно посмотреть в документации.
📖 Вы также можете создавать предикаты, включающие переменные, используя метод evaluate(with:substitutionVariables:)
, чтобы предварительно определить предикат перед заменой конкретных значений в рантайме.
@iOS Dev
BY iOS Dev
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/iosdev/497