Objective-C 之 NSPredicate 的使用

Sample Code:

#import <Foundation/Foundation.h>
#import "Enum.h"
int main(int argc,const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    
    //sample 1
    NSArray * arrayFilter = [NSArray arrayWithObjects:@"pict",@"blackrain",@"ip", nil];
    NSArray * arrayContents = [NSArray arrayWithObjects:@"I am a picture",@"I am a guy",@"I am gagaga",@"ipad",@"iphone" nil];
    int i = 0, count = [arrayFilter count];
    for(i = 0; i < count ; i++)
    {
        NSString * arrayItem = (NSString *)[arrayFilter objectAtIndex:i];
        NSPredicate * filterPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",arrayItem];
        NSLog(@"Filtered array with filter %@,%@",arrayItem,[arrayContents filteredArrayUsingPredicate:filterPredicate]);
    }
    
    
    //sample 2
    arrayFilter = [NSArray arrayWithObjects:@"abc1",@"abc2", nil];
    arrayContents = [NSArray arrayWithObjects:@"a1",@"abc1",@"abc4",@"abc2", nil];
    NSPredicate * thePredicate = [NSPredicate predicateWithFormat:@"NOT (SELF in %@)",arrayFilter];
    [arrayContents filteredArrayUsingPredicate:thePredicate];
    
    
    //sample 3
    NSFileManager * fileManager = [NSFileManager defaultManager];
    NSString * defaultPath = [[NSBundle mainBundle] resourcePath];
    NSError * error;
    NSArray * directoryContents = [fileManager contentsOfDirectoryAtPath:defaultPath error:&error];
    NSString * match = @"images-99.png";
    NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF==%@",match];
    NSArray * results = [directoryContents filteredArrayUsingPredicate:predicate];
    
    match = @"image-88*.png";
    predicate = [NSPredicate predicateWithFormat:@"SELF like %@",match];
    results = [directoryContents filteredArrayUsingPredicate:predicate];
    
    match = @"imagexyz*.png";
    predicate = [NSPredicate predicateWithFormat:@"SELF like[cd] %@",match];
    results = [directoryContents filteredArrayUsingPredicate:predicate];
    
    match = @"imagezyx-\\d{3}\\.png";
    predicate = [NSPredicate predicateWithFormat:@"SELF matches %@",match];
    results = [directoryContents filteredArrayUsingPredicate:predicate];
    
    
    
    
    [pool drain];
    return 0;
}

转载于:https://my.oschina.net/CarlHuang/blog/140006

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值