objetive-c 谓词学习笔记

objective-c 谓词 主要应用创建过滤。

#import <Foundation/Foundation.h>

@interface Person:NSObject

@property (copy)NSString *name;
@property int age;
@end
#import "Person.h"

@implementation Person
@synthesize name;
@synthesize age;

-(NSString *)description
{
    NSString * des = [NSString stringWithFormat:@"name:%@ age:%d",name,age];
    return des;
}
@end
#import <Foundation/Foundation.h>
#import "Person.h"

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

    @autoreleasepool {
        
        NSMutableArray *persons = [[NSMutableArray alloc] init];
        int i;
        for(i = 0;i < 10 ;i++)
        {
            Person * person = [[Person alloc] init];
            if(i < 5)
            {
                person.name = [NSString stringWithFormat:@"jack-%d",i];
            }else{
                person.name = [NSString stringWithFormat:@"tom-%d",i];
            }
            person.age = (20+i);
            [persons  addObject: person];
            [person release];
        }
              NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name=='jack-4'"];//创建谓词判断属性
              //比较和逻辑运算符
              predicate=[NSPredicate predicateWithFormat:@"age>25 && age<27"];
              //格式化说明符
              predicate=[NSPredicate predicateWithFormat:@"name==%@",@"jack-4"];
              predicate=[NSPredicate predicateWithFormat:@"age > %d",25];
              predicate=[NSPredicate predicateWithFormat:@"%K > %d",@"age",25];
              //数组运算符
              NSArray *between = [NSArray arrayWithObjects:[NSNumber numberWithInt:25],[NSNumber numberWithInt:27],nil];
              predicate=[NSPredicate predicateWithFormat:@"age BETWEEN %@",between];
              predicate=[NSPredicate predicateWithFormat:@"name IN {'jack-2','tom'}"];
              //字符串运算符
              predicate=[NSPredicate predicateWithFormat:@"name BEGINSWITH 'ja'"];//已ja开头
              predicate=[NSPredicate predicateWithFormat:@"name ENDSWITH '-5'"];//-5结尾
              predicate=[NSPredicate predicateWithFormat:@"name CONTAINS '-'"];//包含-
              //LIKE运算符
              predicate=[NSPredicate predicateWithFormat:@"name LIKE '*ck*'"];
              predicate=[NSPredicate predicateWithFormat:@"name LIKE '?a*'"];
        
              //对数组过滤
              NSArray * filterArray = [persons filteredArrayUsingPredicate:predicate];
              NSLog(@"%@",filterArray);
    }
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值