比較運算符
/**比較運算符
* >:大于
* <:小于
* >=:大于等于
* <=:小于等于
* =,==:等于
* !=,<>:不等于
* between:左邊的表達式等于右邊的表達式的值或者介于它們之間。右邊是一個有兩個指定上限和下限的數值的數列(指定順序的數列)。比如,1 BETWEEN { 0 , 33 },或者$INPUT BETWEEN { $LOWER, $UPPER }。
NSPRedicate *predicate = [NSPredicate predicateWithFormat:@"age<%d",30]; NSArray *array = [persons filteredArrayUsingPredicate:predicate];
in(包含)
name以a開頭的
predicate = [NSPredicate predicateWithFormat:@"name BEGINSWITH 'a'"];
name以ba結尾的
predicate = [NSPredicate predicateWithFormat:@"name ENDSWITH 'ba'"];
name中包含字符a的
predicate = [NSPredicate predicateWithFormat:@"name CONTAINS 'a'"];
like 匹配任意多個字符
name中只要有s字符就滿足條件
predicate = [NSPredicate predicateWithFormat:@"name like '*s*'"];
?代表一個字符,下面的查詢條件是:name中第二個字符是s的
predicate = [NSPredicate predicateWithFormat:@"name like '?s'"];
1)、過濾對象是數組:使用- (void)filterUsingPredicate:(NSPredicate *)predicate; 針對可變數組進行過濾,過濾掉可變數組中不符合條件的。-(NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; 針對不可變數組進行過濾,將符合條件的元素組成一個新數組進行返回
2)、對單個對象進行判斷過濾使用:- (BOOL)evaluateWithObject:(id)object; 向謂詞對象發送該方法,參數是過濾的對象。常見于和正則表達式配合使用。
小結:以上三種方法都可以執行謂詞短語,如果是對數組元素進行過濾的話,我們使用:- (void)filterUsingPredicate:(NSPredicate *)predicate、- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate;更方便,如果是只針對一個對象進行判斷的話,使用- (BOOL)evaluateWithObject:(id)object; 更方便。