Filter NSPredicate

来源:互联网 发布:python qt gui 源码 编辑:程序博客网 时间:2024/05/14 23:49

//

//  main.m

//  filterArray

//

//  Created by yanguo.sun on 13-6-18.

//  Copyright (c) 2013 YEK. All rights reserved.

//


#import <Foundation/Foundation.h>


NSArray *filterArrayWith(NSString *searchText,NSArray *recipes);


int main(int argc, const char * argv[])

{


    @autoreleasepool {

//        NSString *orgString = @"abcdefghijklmnopqrstuvwxyz";

        NSString *orgString = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        srand((unsigned)time(0));

        NSMutableArray *mutArray = [NSMutableArray new];

        for (int i=0; i<10; i++) {

            

            int start = rand()%18+1;

            int lenghth = rand()%5+2;

            NSString *subString = [orgString substringWithRange:NSMakeRange(start, lenghth)];

            [mutArray addObject:subString];

        }

        

        NSLog(@"%@",mutArray);

        

        NSLog(@"%@",filterArrayWith(@"i", mutArray));

        // insert code here...

        NSLog(@"Hello, World!");

        

    }

    return 0;

}

NSArray *filterArrayWith(NSString *searchText,NSArray *recipes){

    

//    基本上,一个Predicate是一个表达式,返回Boolean值(truefalse)。你可以以NSPredicate格式指定查询条件,然后使用NSPredicate 对象过滤数组中的数据。NSArray 提供了filteredArrayUsingPredicate: 方法,该方法返回一个新的数组,数组包含了匹配指定Predicate的对象。Predicate中的SELF关键字 – SELF contains[cd] %@ 指向比较对象(如菜单名称)。操作符[cd] 表示比较操作 – case diacritic 不敏感。

    NSPredicate *resultPredicate = [NSPredicate

                                    predicateWithFormat:@"SELF contains[cd] %@",searchText];

    

    

      return [recipes filteredArrayUsingPredicate:resultPredicate];

}


Thunder Download Plugin
Thunder Download Plugin