У меня есть запрос облачного набора, который использует NSPredicate ниже для поиска записей, где имя начинается со значения, которое пользователь вводит в UITextField
. Я хотел бы сделать регистр поиска нечувствительным, поэтому, если бы пользователь искал «яблоко», он отобразил результаты для «Apple» и «apple». Как я могу это сделать? Я также попытался изменить запрос на CONTAINS
вместо BEGINSWITH
, но приложение не возвращает никаких результатов, поскольку оно ищет значение в массиве. Можно ли увидеть, содержит ли строка строку текстового поля? БлагодаряCloudKit NSPredicate case insensitive
var p = NSPredicate(format: "name BEGINSWITH %@", titleLabel.text!)
'BEGINSWITH [c]'? «Сравнение строк по умолчанию чувствительно к регистру и диакритике. Вы можете модифицировать оператора, используя ключевые символы c и d в квадратных скобках, чтобы указать регистр и диакритическую нечувствительность соответственно, например firstName BEGINSWITH [cd] $ FIRST_NAME». от https://developer.apple.com/library/watchos/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-SW1 (раздел сравнения строк) – Larme
Является ли '$ FIRST_NAME', где я должен разместить 'titleLabel.text!'? –
'' name BEGINSWITH [c]% @ "' то, что вы должны делать. – Larme