Я использую запрос Parse OR для поиска совпадений пользователей на основе регулярных выражений и электронных писем внутри массива. Регулярное выражение может быть довольно длинным, поскольку я генерирую его из имен в адресной книге пользователя. Мой код ниже:Запрос Parse или Regex дает ошибку Geoquery
PFQuery *emailQuery = [WPUser query];
[emailQuery whereKey:@"email" containedIn:emails];
PFQuery *nameQuery = [WPUser query];
[nameQuery whereKey:@"name" matchesRegex:regex modifiers:@"i"];
PFQuery *query = [PFQuery orQueryWithSubqueries:@[emailQuery, nameQuery]];
[query whereKey:@"objectId" notEqualTo:[WPUser currentUser].objectId];
[query whereKeyExists:@"signedUp"];
[query findObjectsInBackgroundWithBlock:^(NSArray * _Nullable objects, NSError * _Nullable error) {
self.registeredContacts = objects;
BLOCK_ON_MAINTHREAD()
}];
Формат регулярного выражения (^First.*Last$)|(^First.*Last$)
и т.д. для каждого имени в адресной книге. Я использую модификатор i
, чтобы сделать его регистрозависимым.
Тем не менее, я получаю странную ошибку с этим запросом, и она, похоже, только началась недавно: [Error]: geo query within or is not supported (Code: 102, Version: 1.14.2)
. Я не добавляю никаких геоинформаций к этому запросу, как вы можете видеть. Если мое регулярное выражение каким-то образом заставляет Parse добавлять геокрию? Если я прокомментирую строку matchesRegex:modifiers:
, тогда запрос вернется как обычно ... однако я, очевидно, теряю функциональность, в которой я нуждаюсь.
У меня нет символов или чего-либо еще, поскольку я также проверяю имена с помощью NSCharacterSet
.
NSMutableCharacterSet *validCharacters = [NSMutableCharacterSet letterCharacterSet];
[validCharacters formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
Почему Parse дает мне ошибку, которая не имеет отношения к моему фактическому запросу? Если это связано с моим регулярным выражением, любые идеи по его устранению?