謂詞NSPredicate的使用

2022-07-28 06:18:13 字數 3411 閱讀 6530

謂詞是用來為資料新增過濾條件,從而更加精確的找到找到所描述條件的資料。蘋果為我們封裝好了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...