原文:
/** 一 運算子*/
// 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...