1、常用創(chuàng)建方式
NSPredicate *predicate = [NSPredicate predicateWithFormat:@""];
2、Format:的格式
2.1 比較運(yùn)算符 >,<,==,>=,<=,!=
// 說明:Person類要自己寫,這里就不貼代碼了
Person *p1 = [[Person alloc] initWithName:@"test1" AndAge:12];
Person *p2 = [[Person alloc] initWithName:@"test2" AndAge:23];
Person *p3 = [[Person alloc] initWithName:@"test3" AndAge:101];
Person *p4 = [[Person alloc] initWithName:@"test4" AndAge:120];
NSArray *arr = @[p1,p2,p3,p4];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age>100&&name=='test4'"];
// 注意這個(gè)語法里面字符串要用單引號(hào)
NSArray *result = [arr filteredArrayUsingPredicate:predicate];
// 打印輸出結(jié)果
NSLog(@"%@",result);
2.2 范圍運(yùn)算符,in(則表示在后面的{}中是否包含),between(在某個(gè)范圍內(nèi),如:age between{15,25}等價(jià)于 15<=age<=25)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age between {15,25}"];
或者
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name in {'test1','test2'}"];
2.3 對(duì)象本身self 如@"self == 'apple'"(也可以是NSNumber)
NSArray *arr = @[@"ss",@"dddd",@"apple"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self == 'apple'"];
// 注意這個(gè)語法里面字符串要用單引號(hào)
NSArray *result = [arr filteredArrayUsingPredicate:predicate];
// 打印輸出結(jié)果:apple
2.4 字符串相關(guān)
:BEGINSWITH、ENDSWITH、CONTAINS
例:@"name CONTAINS[cd] 'ang'" //包含某個(gè)字符串
@"name BEGINSWITH[c] 'sh'" //以某個(gè)字符串開頭
@"name ENDSWITH[d] 'ang'" //以某個(gè)字符串結(jié)束
NSArray *arr = @[@"yangjie",@"zhangsan",@"lisi"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self contains[cd] 'ng'"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self beginswith[c] 'y'"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self endswith[d] 'i'"];
// 注意這個(gè)語法里面字符串要用單引號(hào)
NSArray *result = [arr filteredArrayUsingPredicate:predicate];
// 打印輸出結(jié)果
NSLog(@"%@",result);
2.5通配符:LIKE
例:@"name LIKE[cd] 'er'" //代表通配符,Like也接受[cd].
@"name LIKE[cd] '???er'"
NSArray *arr = @[@"yangjie",@"zhangsan",@"lisi",@"ang",@"tangddd",@"fangxxx"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self like[cd] 'ang*'"];
// 注意這個(gè)語法里面字符串要用單引號(hào)
NSArray *result = [arr filteredArrayUsingPredicate:predicate];
// 打印輸出結(jié)果
NSLog(@"%@",result);
2.6正則表達(dá)式:MATCHES
例:NSString *regex = @"^A.+e$"; //以A開頭,e結(jié)尾
@"name MATCHES %@",regex