码迷,mamicode.com
首页 > 移动开发 > 详细

iOS-OC-基础-NSPredicate常用方法

时间:2015-12-03 23:03:50      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

NSpredicate 常用方法

    // 谓词的条件查询 > 、< 、==、!=
    NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"age > 20"];
    NSArray *arr1 = [stuArray filteredArrayUsingPredicate:predicate1];
    NSLog(@"arr1 = %@",arr1);
    
    //使用表达式
    NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"age > 20 && height > 170"];
    NSArray *arr2 = [stuArray filteredArrayUsingPredicate:predicate2];
    NSLog(@"arr2 = %@",arr2);
    
    // 字符串作为条件要使用单引号‘’,name == ‘lisi‘
    NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"name == ‘lisi‘"];
    NSArray *arr3 = [stuArray filteredArrayUsingPredicate:predicate3];
    NSLog(@"arr3 = %@",arr3);
    
    // 使用占位符
    NSPredicate *predicate4 = [NSPredicate predicateWithFormat:@"age == %ld",20];
    NSArray *arr4 = [stuArray filteredArrayUsingPredicate:predicate4];
    NSLog(@"arr4 = %@",arr4);
    
    
    // IN {‘lisi‘,‘wangwu‘} 在包含的条件内
    NSPredicate *predicate5 = [NSPredicate predicateWithFormat:@"height IN {165,180}"];
    NSArray *arr5 = [stuArray filteredArrayUsingPredicate:predicate5];
    NSLog(@"arr5 = %@",arr5);
    
    
    //BEGINSWITH 以什么字符串开头
    NSPredicate *predicate6 = [NSPredicate predicateWithFormat:@"name BEGINSWITH[c] ‘R‘"];
    NSArray *arr6 = [stuArray filteredArrayUsingPredicate:predicate6];
    NSLog(@"arr6 = %@",arr6);
    
    
    // ENDSWITH 以什么字符串结尾
    NSPredicate *predicate7 = [NSPredicate predicateWithFormat:@"name ENDSWITH ‘e‘"];
    NSArray *arr7 = [stuArray filteredArrayUsingPredicate:predicate7];
    NSLog(@"arr7 = %@",arr7);
    
    
    // CONTAINS 包含某个字符串
    NSPredicate *predicate8 = [NSPredicate predicateWithFormat:@"name CONTAINS ‘a‘"];
    NSArray *arr8 = [stuArray filteredArrayUsingPredicate:predicate8];
    NSLog(@"arr8 = %@",arr8);
    
    
    /*
     
     LIKE:
     
     1、 LIKE ‘*a*‘ 包含某个字符串
     2、 LIKE ‘j*‘ 以某个字符串开头
     3、 LIKE ‘*e 以某个字符串结尾
     4、 LIKE ‘?a*‘ 第二个字符串是 a 的
     5、 LIKE[c] ‘r*‘ [c] 表示忽略大小写
     
     *: 星号表示任意个字符位,?问号,表示一个字符位,[c] 表示忽略大小写
     
     */
    
    NSPredicate *predicate9 = [NSPredicate predicateWithFormat:@"name LIKE ‘*a*‘"];
    NSArray *arr9 = [stuArray filteredArrayUsingPredicate:predicate9];
    NSLog(@"arr9 = %@",arr9);
    
    NSPredicate *predicate10 = [NSPredicate predicateWithFormat:@"name LIKE[c] ‘r*‘"];
    NSArray *arr10 = [stuArray filteredArrayUsingPredicate:predicate10];
    NSLog(@"arr10 = %@",arr10);
    
    NSPredicate *predicate11 = [NSPredicate predicateWithFormat:@"name LIKE ‘*e‘"];
    NSArray *arr11 = [stuArray filteredArrayUsingPredicate:predicate11];
    NSLog(@"arr11 = %@",arr11);
    
    NSPredicate *predicate12 = [NSPredicate predicateWithFormat:@"name LIKE ‘?a*‘"];
    NSArray *arr12 = [stuArray filteredArrayUsingPredicate:predicate12];
    NSLog(@"arr12 = %@",arr12);
    
    
    // NSMutableArray 使用 filterUsingPredicate,不会返回一个新数组,而是直接覆盖原来的可变数组
    NSPredicate *predicate13 = [NSPredicate predicateWithFormat:@"name LIKE ‘?a*‘"];
    [stuArray filterUsingPredicate:predicate13];
    NSLog(@"stuArray = %@",stuArray);

 

本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSPredicate

iOS-OC-基础-NSPredicate常用方法

标签:

原文地址:http://www.cnblogs.com/zhang-kiwi/p/5017841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!