zoukankan      html  css  js  c++  java
  • 谓词 (NSPredicate)使用详情

    谓词

    更加详细:http://blog.csdn.net/ztp800201/article/details/8116081

    //判断是否满足条件

    第一种

    判断一个数组(array)中满足条件的

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age < 20”];//定义谓词

    for(Person *p in  array ) {

      //根据谓词选出合适的 ,看是数组中有满足条件的

       BOOL ret = [predicate evaluateWithObject:p];

    if(ret){

    NSLog (@“%@“,p);//要想打印出数组的内容 ,要在Person 类中 实现方法 -(NSString*)decription{}

     }

     }

     

    第二种:

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age < 20”];//定义谓词

    NSArray *filterArray = [array filteredArrayUsingPredicate:predicate];//通过谓词直接过滤,记得区分 可变数组 和不可变数组使用的 操作词是不一样的

    NSLog(@“”);

     

    //谓词可以使用格式占位符

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age < %d”,20];//定义谓词

     

    //谓词使用运算符((and &&)与( || or)) 这两种运算符不分大小写 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age> 25 AND age<28”];//定义谓词

    //IN 在使用的时候 {‘ ’,’ ‘ }是单引号 和逗号 ,也可以使用数组对象,在用占位符导入

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name in  {‘jack -1’,’tom -3’,’xxx’}"];//定义谓词

    //BEGINSWITH  ENDSWITH CONTAINS 关键字 大小写敏感

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name BEGINSWITH ‘J'”];//定义谓词

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name ENDSWITH

     ‘8'”];

    //定义谓词NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name CONTAINS

     ‘’a”];//定义谓词

     

    //最实用的是 like *a*

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name like

     ‘*a*'”];

     

  • 相关阅读:
    1349:【例4-10】最优布线问题
    1348:【例4-9】城市公交网建设问题
    P2024 [NOI2001]食物链
    $P2573 [SCOI2012]滑雪$
    $P1991 无线通讯网$
    $P2872 [USACO07DEC]道路建设Building Roads$
    $P1547 Out of Hay$
    hdu 3468 Treasure Hunting
    hungary HK 多重匹配
    Hdu匹配题集
  • 原文地址:https://www.cnblogs.com/meixian/p/5370968.html
Copyright © 2011-2022 走看看