謂詞是用來為資料新增過濾條件,從而更加精確的找到找到所描述條件的資料。蘋果為我們封裝好了nspredicate類,我們可以很方便的得到我們需要的過濾條件。
謂詞的簡單語法總結:
比較運算:
>
大於
<
小於
>=
大於等於
<=
小於等於
==
等於
!=
不等於
between
左邊的表示式等於右邊的表示式的值或者介於它們之間。
右邊是乙個有兩個指定上限和下限的數值的數列
(指定順序的數列)關係運算子:
any,some
指定下列表示式中的任意元素
all
指定下列表示式中的所有元素
none
指定下列表示式中沒有的元素。
in
左邊的表達必須出現在右邊指定的集合中。比如,name in 。
beginswith
以xx開頭
endswith
以xx結尾
contains
其中包含xx
like
匹配任意多個字元1.查詢陣列中
nsarray *humans =[nsarray arraywithobjects:[human personwithname:
@"cat
" andage:0
], [human personwithname:
@"dog
" andage:1
], [human personwithname:
@"bird
" andage:2
], [human personwithname:
@"tiger
" andage:3
], [human personwithname:
@"lion
" andage:4
], [human personwithname:
@"monkey
" andage:5
], [human personwithname:
@"cow
" andage:6
], [human personwithname:
@"dargen
" andage:7
], [human personwithname:
@"bear
" andage:8
], nil];
//使用謂詞條件運算子
nspredicate *predicate = [nspredicate predicatewithformat:@"
age > 5"];
nsarray *array1 = [humans filteredarrayusingpredicate:predicate];//
將謂詞新增到陣列中
nslog(@"
%@",array1);
//使用謂詞中的in進行過濾
使用between
使用like
predicate = [nspredicate predicatewithformat:@"
name like '?o*'
"];//
?表示乙個字串,且第二個字串為o
使用beginswith
NSPredicate謂詞的用法
nspredicate 謂詞 字面翻譯是這個意思,但是我覺得謂詞這個詞太難以理解了 nspredicate的具體用途應該還是過濾,類似於過濾條件之類的,相當於乙個主語的謂語,所以說會是謂詞這個名字。我是這麼理解的 我們看到建立謂詞使用類方法predicatewithformat nsstring f...
謂詞 (NSPredicate)使用詳情
謂詞 更加詳細 判斷是否滿足條件 第一種判斷乙個陣列 array 中滿足條件的 nspredicate predicate nspredicate predicatewithformat age 20 定義謂詞 for person p in array 第二種 nspredicate predic...
關於謂詞NSPredicate的使用
關於nspredicate的使用,網上已經有很多文章,有一些很不錯,之前看的就是這篇 點選開啟鏈結 根據自己的使用總結下 我主要是用在對陣列的篩選上,相對迴圈陣列然後自己去匹配,要簡潔得多。而且對於陣列裡面巢狀字典或物件的結構很好。1 nspredicate的構建 nspredicate filte...