//
// 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值(true或false)。你可以以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];
}