パースORクエリを使用して、配列内の正規表現と電子メールに基づいて一致するものを検索しています。私はユーザーのアドレス帳の名前から正規表現を生成しているので、正規表現はかなり長くなる可能性があります。私のコードは以下の通りです:構文解析または正規表現クエリでジオクエリエラーが発生する
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]];
なぜ私の実際のクエリと関係のないエラーが返されますか?それは私の正規表現に関連する場合、それを避けるための任意のアイデア?