2016-04-17 9 views
2

私のプロジェクトでは、CloudKitレコードタイプ "User"(私は他のレコードタイプ名でもテストしました)では、電子メールフィールドを使ってレコードを作成します。特定の文字列を持つレコードを返すCloudkit

私はそのメールと正確に一致し、一致するレコードを取得しようとしています。私はINまたは==述語でこれをやっています(単一または電子メールのリスト用)。

let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email IN %@", emails)) 
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email == %@", "[email protected]")) 

私は問題を抱えている電子メールが「[email protected]」で、このメールでレコードを取得しようとすると、私は「[email protected]」それをするように変更があれば、0を返します。 OKを取得します。

最初は特殊文字と見なしましたが、他の文字列は正常に動作していました。それから私は長さを仮定しますが、他の長い文字列は正常に動作します。

誰にもこの問題がありますか?なぜ私はこの文字列に一致することができないのか理解せずにCloudKitを信頼するのは苦労している。

私は同様の質問をしましたが、詳細を知る前に、ユーザーはこれをテストすることができ、この文字列で同じ結果が得られました。このポストははるかに簡潔であり、再作成するステップがあります。

+0

あなたが取得、その後、あなたは ' "メール==%の@" に述語を変更した場合、 "[email protected]"'(なし 'T')と言っています期待した結果を戻すか?その場合、データベースの値が実際に 'julio_ukohgsp_chevez @ tfbnw.ne'ではないことを本当に確信していますか? – rmaddy

+0

ええ、私は100%確信しています。それは奇妙です。私は何度もチェックし、手動で入力しました。あなたの特定の文字列を試すことはできますが、1文字を置き換えても機能しました。 – JDM

+0

私はまったく同じ問題を抱えています。これについて何かを見つけましたか? –

答えて

0

これを試してみてください:

let predicateString = "email IN '\(emails)'" 
let predicate = NSPredicate(format: predicateString) 
関連する問題