謂詞的使用 predicate

2021-07-11 05:48:17 字數 1977 閱讀 5231

原文:

/** 一 運算子*/

// 1   "> < >= <= === != <> between" 比較運算子

nspredicate*predicate =[nspredicatepredicatewithformat:

@"age > 3"

];// 2 "and/&& 與 or/||或 not/!非"邏輯運算

nspredicate*predic =[nspredicatepredicatewithformat:

@"age > 3||name = du1"];

// 3 any,some :指定下列表示式中的任意元素。(eg:any person.age < 18) all:指定下列表示式中的所有元素。(eg:all person.age < 18) none:指定下列表示式中沒有的元素。(eg:none person.age < 18) in:等於sql的in操作,左邊的表示式必須出現在右邊指定的集合中。(eg:name in)

nspredicate*pred =[nspredicatepredicatewithformat:

@"name in "

];// 4 陣列 array[index]:指定陣列中特定索引處的元素 array[first]:指定陣列中的第乙個元素 array[last]:指定陣列中的最後乙個元素 array[size]:指定陣列的大小

/** 二 語句*/

//1針對陣列的語句

nsarray*result = [arrfilteredarrayusingpredicate:predicate];

//針對不可變陣列進行過濾,將符合條件的組成乙個新的陣列進行返回

nslog

(@"呼叫正對不可變陣列過濾方法:%@",result);

[arr

filterusingpredicate

:predicate];//

針對可變陣列進行過濾,過濾掉可變陣列中不符合條件的。-

nslog

(@"呼叫針對可變陣列的過濾方法:%@",arr);

//2 針對單個物件的語句

//    [predicate evaluatewithobject:result[0]];//向謂詞物件傳送該方法

引數是過濾物件

常見和正規表示式配合使用

for (person *personin result) else }

//正規表示式當謂詞和正則聯用時,我們就需要認識兩個新的關鍵字:self、matches  self的意思是指代要驗證的字串本身,matches是乙個字串操作:表示匹配。我們用self+matches+正規表示式就可以拼接出乙個謂詞了

nsstring *teststr = @"wo";

nsstring *regex = @"^[a-za-z]*$";//

只能是字母

不分大小寫

nspredicate*predicatere1 =[nspredicatepredicatewithformat:

@"self matches%@"

,regex];

bool result =[predicatere1 evaluatewithobject:teststr];

nslog(@"

匹配結果

== %d",result);

//由於nsregularexpression 需要乙個nserror物件

nserror *error;

//第乙個引數是正規表示式第二個引數是匹配操作的型別(列舉值) 第三個引數是error位址

nsregularexpression*regularexpression =[nsregularexpressionregularexpressionwithpattern:regex options:nsregularexpressioncaseinsensitiveerror:&error];

if (!error)

//如果發生錯誤列印錯誤型別

}else

Predicate 謂詞 斷言

nspredicate 在foundation框架中,提供了乙個nspredicate類,可以指定過濾條件,通過指定的過濾條件可以對集合中的物件進行篩選過濾 nspredicate的查詢方式類似於資料庫的查詢,可以使用比較和邏輯運算子,還可以使用一些關鍵字 1 建立 nspredicate pred...

謂詞篩選表示式的擴充套件庫PredicateLib

predicatelib是謂詞篩選表示式expression 的乙個擴充套件庫,它可以幫你建立乙個複雜且靈活的expression 以作為ef mongodb driver等orm框架的查詢條件。1.1 true或false predicatevar predicate predicate.true...

ios 謂詞的使用

剛入行的小女人,希望以後大家多多關照,把每天學到的知識記錄下,方便以後使用,有不對的地方希望大家多多指點,小女感激不盡。今天剛剛學了謂詞的使用,記錄下。返回乙個符合謂詞條件的陣列 nsarray newarray array filteredarrayusingpredicate predicate...