OC語法 謂詞NSPredicate類

2021-07-02 00:25:23 字數 1801 閱讀 5878

cocoa中提供了nspredicate類,指定過濾器的條件。將符合條件的物件保留下來。

下列列舉常用的nspredicate類的常用方法:

person類含有name和age屬性

初始化乙個物件陣列

nsmutablearray*array=[nsmutablearray

array];

for (int i=0; i<10; i++)

else

person.age=@(20+i);

[array addobject:person];

}//設定謂詞條件

nspredicate *predicate=[nspredicate

predicatewithformat:@"age<25"];

nspredicate *predicate=[nspredicate predicatewithformat:@"age<%d",22];

// 可以用and or || &&

nspredicate *predicate=[nspredicate predicatewithformat:@"age>25 ||age<27"];

nspredicate *predicate=[nspredicate predicatewithformat:@"name='tom-8'"];

//in

關鍵字

nspredicate *predicate=[nspredicate predicatewithformat:@"self.name   in" ];

//陣列

nsarray *inarray=@[

@"tom-7",@"jack-3"

];nspredicate *predicate=[nspredicate predicatewithformat:@"self.name in%@",inarray];

//beginwith 檢查某個字是否以**開頭

nspredicate *predicate=[nspredicate predicatewithformat:@"name beginswith 't' or name beginswith 'j'" ];

//endswith 檢查某個字是否以**開頭

nspredicate *predicate=[nspredicate predicatewithformat:@"name endswith '-5'"];

// contains 檢查某個字是否以**開頭

nspredicate *predicate=[nspredicate predicatewithformat:@"name contains '-'"];

//like   *4*表示4前後都是有內容的

nspredicate *predicate=[nspredicate predicatewithformat:@"name like'*4*'"];

nsstring

*s=[

nsstring

stringwithformat

:@"name like '*%@*'",@"a"];

nspredicate *predicate=[nspredicate predicatewithformat:s ];

//判斷條件

for(person *p in  array)

}//對陣列過濾

nsarray *filtearray=[array filteredarrayusingpredicate:predicate];

nslog(@"%@",filtearray);

int i=10;

nslog("%i",i);

oc謂詞過濾元素

謂詞的乙個常用功能就是對集合進行過濾,當程式使用謂詞對集合進行過濾時,程式將會自動遍歷集合元素,並根據集合元素來計算謂詞的值,只有當根據某個集合元素計算謂詞並返回yes時,該集合元素才會被保留下來。nsarray 提供了如下方法使用謂詞來過濾集合 nsarray filteredarrayusing...

oc基礎語法 oc特有語法(1)

1 根據以前學的,呼叫方法是這樣的 student stu student new stu setage 100 int age stu age 如果用點語法,這樣就可以呼叫了 stu.age 100 int age stu.age 2 點語法的本質 其實點語法的本質還是方法呼叫,當使用點語法時,編...

OC基本語法

基本格式及語法 oc方法的格式 表示類方法,只能用來呼叫。表示例項方法,用物件呼叫 無引數輸入的方法格式 方法的返回值 方法名 例 void func1 nsinteger func2 有引數入的方法格式 方法返回值 方法名 引數1型別 引數1名 方法名 引數2型別 引數2名 例 輸入字串 返回字串...