2016-11-13 33 views
0

コアデータからデータを取得する必要があるため、条件1と条件2を確認する必要があります。NSPredicate しかし、条件1が満たされれば条件2を確認する必要があります。 このシナリオを達成するのに手伝ってください。複数条件付きNSPredicate - 最初の条件に基づいて2番目の条件を実行する

ロジック

If (Condition1 == true) 
{ 
    if(Condition2 == True) 
     { 
     } 
    else 
     { 
     //Code 
     } 
} 
else 
{ 
//codes 
} 

NSPredicateを使用してこのシナリオを実現するために私を助けてください。

+0

したがって、 '(条件1 == TRUE)&&(CONDITION2 == TRUE)'、いくつかのコードであれば、 '(condition1 == true)&&(condition2 == false)'なら、いくつかのコード。 'if(condition1 == false)&&(condition2 == true/false)'、いくつかのコードは正しいのでしょうか? – KrishnaCA

+0

'NSPredicate'は、データのフェッチやフィルタリングに使用できます。コードを実行することはできません。 – Willeke

+0

@Willeke、うまく 'predicateWithBlock:'がありますが、私はあなたの意味をとっています。 –

答えて

1

述語形式の文字列にANDという式を使用するだけです。 NSPredicateはそれらを短絡オペレータとして扱います。あなたが行って 作業量を最小限にするために化合物述語を構築する必要があり

:それはPredicate Programming Guide: Using Predicates – Performance Considerationsセクションから、このアドバイスで暗黙のです。特に正規表現マッチングは、高価な オペレーションです。 最初の句がfalseの場合にのみ評価される[ORが後]

[...]の例では、正規表現:化合物述語では、そのための正規表現の前に 簡単なテストを[...]実行する必要があります

(強調追加)

+0

[NSCompoundPredicate andPredicateWithSubpredicates:]は、私が信じている呼び出しです – Alex

+0

@Alex、はい、これはプログラマチックに述語を構築するためのAPIです。これは確かに有効です。私は述語が '[NSPredicate predicateWithFormat:@" ... "]'を使って構築されることが多いと思います。その場合、文字列に 'AND'キーワードをつけて表現するだけですで。 –

関連する問題