实用知识:NSPredicate(谓词)的使用

来源:互联网 发布:哪里有卖呼死你软件 编辑:程序博客网 时间:2024/04/28 00:45
#import "ViewController.h"#import "Person.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.}- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{    [self test3];}- (void)test3{    Person *p1 = [Person new];    p1.name = @"张三";    p1.age = 14;    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.age > 15"];    //使用谓词评估对象    BOOL result = [predicate evaluateWithObject:p1];    if (result) {        NSLog(@"大于15岁");    }else{        NSLog(@"小于15岁");    }}- (void)test2{    Person *p1 = [Person new];    p1.name = @"张三";    p1.age = 18;    Person *p2 = [Person new];    p2.name = @"李四";    p2.age = 17;    Person *p3 = [Person new];    p3.name = @"王五";    p3.age = 14;    Person *p4 = [Person new];    p4.name = @"张扇风";    p4.age = 20;    Person *p5 = [Person new];    p5.name = @"张点";    p5.age = 15;    NSArray *persons = @[p1,p2,p3,p4,p5];    //查找包含'张'的人    NSString *name = @"张三";    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.name == %@",name];    NSArray *results = [persons filteredArrayUsingPredicate:predicate];    NSLog(@"%@",[results valueForKey:@"name"]);    for (Person *p in results) {        NSLog(@"%@",p.name);    }}- (void)test1{    NSArray *array = @[@"23451345",@"2222435",@"54674578",@"dryjtuj",@"467222"];    //筛选出字符串含有 "222" 的字符串    //谓词(条件)-语句不区分大小写    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS '222'"];    //使用谓词去过滤    NSArray *results = [array filteredArrayUsingPredicate:predicate];    NSLog(@"%@",results);}@end
0 0
原创粉丝点击