谓词NSPredicate

cocoa中提供了NSPredicate类,指定过滤器的条件,将符合条件的对象保留下来.谓词筛选后的结果也是一个数组.
CoreData查找数据也是通过谓词.

谓词设置方法

//设置条件
        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"age<5"];
        //与
        NSPredicate *predicate1=[NSPredicate predicateWithFormat:@"age<9&&age>5"];
        //或
        NSPredicate *predicate2=[NSPredicate predicateWithFormat:@"age<3||age>5"];
        //占位符传参
        NSPredicate *predicate3=[NSPredicate predicateWithFormat:@"age=%d",3];
        //多条件
        NSArray *[email protected][@"jack1",@"Tom7" ];
        NSPredicate *predicate4=[NSPredicate predicateWithFormat:@"name in %@",arrayname];
        //是否以某个字符开头,可以使用和与或
        NSPredicate *predicate5=[NSPredicate predicateWithFormat:@"name beginswith ‘j‘"];
        //是否以某个字符结尾,可以使用和与或
        NSPredicate *predicate6=[NSPredicate predicateWithFormat:@"name endswith ‘9‘"];
        //contains 是否包含某个字符
        NSPredicate *predicate7=[NSPredicate predicateWithFormat:@"name contains ‘a‘"];
        //like 类似SQL中的模糊查找
        NSPredicate *predicate8=[NSPredicate predicateWithFormat:@"name like ‘*a*‘"];

搜索结果获得方法

//方法一:
        for (person *p1 in array) {
            //返回布尔值,根据布尔值可以判断符合要求的数据
            BOOL result=[predicate evaluateWithObject:p1];
            if (result) {
                NSLog(@"%@",p1);
            }
        }
        //方法二
        //filterUsingPredicate,将过滤后的方法放入原方法中,数组是可变数组
        [array filterUsingPredicate:predicate];
        for (person *p1 in array) {
            NSLog(@"%@",p1);
        }
        //方法三
        //filteredArrayUsingPredicate,将过滤后的结果放入一个新的数组中
        NSArray *array1=[array filteredArrayUsingPredicate:predicate8];
        for (person *p1 in array1) {
            NSLog(@"%@",p1);
        }
时间: 2024-11-05 21:55:46

谓词NSPredicate的相关文章

iOS 之谓词 NSPredicate

NSPredicate:谓词 NSPredicate的具体用途应该还是过滤,类似于过滤条件之类的. 一.NSpredicate的创建: NSpredicate *predicate  = [NSpredicate  predicateWithFormat:@"age > 28"]; //筛选条件       predicateWithFormat:为类方法 ,不需要我们管理内存. 二.NSpredicate中主要的几种运算方式      1.比较运算符 > .< .=

OC学习篇之---谓词(NSPredicate)

在前一篇文章中我们介绍了OC中一个重要技术通知:http://blog.csdn.net/jiangwei0910410003/article/details/41923401,今天我们在来看一下OC中给我们提供的一个技术:谓词(NSPredicate) OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据.非常方便.在Java中是没

(转载)OC学习篇之---谓词(NSPredicate)

在前一篇文章中我们介绍了OC中一个重要技术通知,今天我们在来看一下OC中给我们提供的一个技术:谓词(NSPredicate) OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据.非常方便.在Java中是没有这种技术的,但是有开源的框架已经实现了此功能. 下面来看一下具体的例子吧: Person.h 1 // 2 // Person.

OC中给我们提供的一个技术:谓词(NSPredicate).note

OC中给我们提供的一个技术:谓词(NSPredicate)OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据.非常方便.在Java中是没有这种技术的,但是有开源的框架已经实现了此功能. 下面来看一下具体的例子吧: Person.h objc]  view plaincopy  1. //   2. //  Person.h   3.

iOS:转载:IOS谓词--NSPredicate

IOS谓词--NSPredicate 分类: IOS应用2013-02-19 17:24 6792人阅读 评论(1) 收藏 举报 Cocoa 提供了NSPredicate 用于指定过滤条件,谓词是指在计算机中表示计算真假值的函数,它使用起来有点儿像SQL 的查询条件,主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配.首先我们看一个非常简单的例子,对谓词有一个认知.#import <Foundation/Foundation.h>@interface Person: NSObje

谓词(NSPredicate)

OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据.非常方便.在Java中是没有这种技术的,但是有开源的框架已经实现了此功能. 下面来看一下具体的例子吧: Person.h [objc] view plain copy // //  Person.h //  46_NSPredicate // //  Created by jian

iOS中的谓词NSPredicate的使用

今天写一篇关于iOS中关于谓词一些用法,我们先来看苹果官方给出的解释: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. You use predicates to represent logical conditions, used for describing objects i

OC语法--谓词NSPredicate类

Cocoa中提供了NSPredicate类,指定过滤器的条件.将符合条件的对象保留下来. 下列列举常用的NSPredicate类的常用方法: Person类含有name和age属性 初始化一个对象数组 NSMutableArray *array=[NSMutableArray array]; for (int i=0; i<10; i++) { Person *person=[[Person alloc]init]; if (i<5) { person.name=[NSString strin

iOS 中文字符判断 正则NSRegularExpression 谓词NSPredicate 和 NSRange

废话不说,直接上代码 #pragma mark - 中文字符判断 - (BOOL)validateContainsChinese:(NSString *)content { NSRegularExpression *regularexpression = [[NSRegularExpression alloc] initWithPattern:@"^[\u4e00-\u9fa5]" options:NSRegularExpressionCaseInsensitive error:nil