web-dev-qa-db-ja.com

NSPredicateで2つの条件を組み合わせる

NSPredicateで2つの条件をどのように組み合わせますか?次のステートメントを使用していて、パスワードを[〜#〜] and [〜#〜]を使用してテキストフィールドの内容と比較する別の条件を追加したいと思います。

request.predicate = NSPredicate(format: "username = %@", txtUserName.text!)
21
Simon

これを試して

request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassword.text!)
28
Alexander

すでに述べたように、述語では「AND」、「OR」のような論理演算子を使用できます。詳細については、「述語プログラミングガイド」の 述語フォーマット文字列構文 を参照してください。

別の方法として、「複合述語」を使用します。

let p1 = NSPredicate(format: "username = %@", "user")
let p2 = NSPredicate(format: "password = %@", "password")
let predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [p1, p2])

これは、より複雑な式の場合や、実行時に述語を動的に作成する場合に役立ちます。

46
Martin R

ANDはまさにあなたが必要とするものです

request.predicate = NSPredicate(format: "username = %@ AND password = %@", txtUserName.text!, txtPassWord.text!)
0
vadian