NSPredicateは、データのフィルタリングを実装します

A:基本的な文法

1.次のように書かれてNSPredicateリンゴの公式文書は何である:。NSPredicateクラスで論理条件のいずれかAはFETCHまたはメモリ内のフィルタリングのためのためのA検索を制約するために使用するDEFINEを使用されている(NSPredicateクラスを制約する論理条件によって定義されているか、メモリを取得するには検索フィルタ。)

2.基本的な構文は、(場合であってもよいが、これらの予約語を表すために、より多くの資本を使用することをお勧めします)述語述語式を定義するために必要とされる限り、我々は動詞(NSPredicate)を使用すると、この表現はBOOL戻り値でなければなりません。述語表現は、発現、オペレータ及び値によって構成される。SELF = 123

(1)比較== =全く割り当てないと言ったかどうかを決定することは、Aに等しいです。

(2)>かどうかの間に決定さらに<=> <!= <> =

/ *値は10 <SELF> 1 && SELF間の条件範囲を満たします

OR   または満たすためにロジック出力

NOT!非反転論理

* /

// 
  INT testNumber = 4 

    NSPredicate *述語= [NSPredicate predicateWithFormat:"@ {10,1} BETWEEN SELF " ]。

  もし{([:[のNSNumber numberWithInteger testNumber]述語evaluateWithObject])

    のNSLog(@ " たTestStringた:%d " 、testNumber)。

  } { 

    のNSLog(@ " 不符合条件" )。

  }

(3)文字列比較

指定された文字列の初めに文字かどうかBEGINWITHチェック

例:「」BEGINSWITHの先頭に比べた場合

()エンディングでENDSWITH

含まCONTAINS

文字列が指定した文字列のテンプレートと一致するかどうかをLIKEチェック、それが続くことができるか、そして 2つのワイルドカード(?表し一つの文字  、任意の数の文字の代わりに)

 	eg: "name LIKE'?ac*'"  表示name的第2 3个字符是ac则返回YES "name LIKE'*ac*'" 表示name包含ac则返回YES 

MATCHESは、文字列が指定した正規表現と一致するかどうかをチェックします

(4)集合演算子

ANY、SOME:コレクション要素を満たすいずれかの条件、返品YES。

ALL:すべての要素がYES返す前に、条件を満たすように設定されています。

NONE:何の要素が条件がYESを返すセットを満たしていません。以下のような:のみYESを返すときNONE person.age = 18 <18は、すべての要素の年齢の人のコレクションを表す>を。

以下の場合:IN演算子におけるSQL文と同じ、左側の式または値のセットが右側に表示された場合にのみYESを返します。

配列[インデックス]:要素の配列インデックス配列のインデックスを返します

array[FIRST]:返回array数组中第一个元素

array[LAST]:返回array数组中最后一个元素

array[SIZE]:返回array数组中元素的个数

二、NSPredicateの使用状況

(1)定義された述語

NSPredicate *述語= [NSPredicate predicateWithFormat:"@ {10,1} BETWEEN SELF " ]。
(2)(重鎖及び困難モジュール)フィルタセット述語を使用して

ここから私たちは、述語の本当の力を見ることができるので、この部分は、私たちが知っている必要が焦点であります

実際には、述語自体が論理状態を表し、その結果は常にBOOLを入力されている述語の値を計算した後に戻りました。述語は、収集フィルタの最も一般的に使用される機能です。

******** 焦点 **********

プログラムは、フィルタ述語収集要素を使用する場合、プログラムは自動的にその要素を横断し、要素値は述語の集合に基づいて計算されるコレクションの要素がYES述語とリターンを評価する際に、この要素が保持されます。

***********************

PS:プログラムが自動的にその要素を循環し、それが自動的にYESが返されるコレクションに再構成された後、トラバース値を返すことに注意してください。

 

  NSArrayのフィルタに述語の集合を使用する方法を提供します

  (NSPredicate *)述語: - (NSArrayの<のObjectType> *)filteredArrayUsingPredicate:新規の右の要素を返し、指定された述語フィルタNSArrayのセットを使用して設定しました

 NSMutableArrayのフィルタに述語の集合を使用する方法を提供します
  - (無効)filterUsingPredicate:(NSPredicate *)述語:コレクション要素の不適格を除く、指定された述語フィルターNSMutableArrayのを使用して

 NSSetはフィルタに述語の集合を使用する方法を提供します
  - (NSSet <のObjectType> *)filteredSetUsingPredicate:(NSPredicate *)述語NS_AVAILABLE(10_5、3_0):同じようにNSArrayでの役割

  
  NSMutableSetはフィルタに述語の集合を使用する方法を提供します
  - (無効)filterUsingPredicate:(NSPredicate *)述語NS_AVAILABLE(10_5、3_0):NSMutableArrayのメソッドを持つロール。

以上の説明から分かるように、フィルタ述語不変セットと変数の組との間の差である:、不変セットをフィルタリングする新しい要素の組予選セットを返し、濾過変数セットを、ノーリターン値除く直接条件に設定要素を満たしていません

 

おすすめ

転載: www.cnblogs.com/lovemargin/p/11880751.html