首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

30分钟摸透iOS中谓词NSPredicate的来龙去脉

在iOS开发Cocoa框架中,有提供NSPredicate类,这个类通常也被成为谓词类,其主要的作用是在Cocoa中帮助查询和检索,但是需要注意,实质上谓词并不是提供查询和检索的支持,它是一种描述查询检索条件的方式...二、NSPredicate类的应用解析     NSPredicate提供创建谓词对象和解析谓词对象的方法,它也是Cocoa中有关谓词的类中的基类。...NSPredicate提供了如下函数来进行初始化: //通过格式化字符串来进行谓词对象的初始化 + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat...有一个小细节需要注意,在进行格式化时,如果使用的是变量则不需要添加引号,解析器会帮助你添加,如果使用到常量,则要用转义字符进行转义,例如: NSPredicate * predicate = [NSPredicate...*)predicateWithValue:(BOOL)value; //自定义实现检索函数 /* 例如前面的示例也可以这样写 NSPredicate * predicate = [NSPredicate

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【IOS开发高级系列】CoreData专题

    我们通过 Fetch Requests 向 Managed Object Context 查询符合条件的数据对象,以 NSArray 形式返回查询结果,如果我们没有设置任何查询条件,则返回该 Entity...NSFetchRequest 常用方法 -setEntity:设置你要查询的数据对象的类型(Entity) -setPredicate:设置查询条件 -setFetchLimit:设置最大查询对象数目...7.1.1 NSPredicate         NSPredicate用于查询和过滤在SQL中作为查询条件通常用WHERE,但在CORE DATA中作为查询条件就可以用到NSPredicate....7.1.1.2 代码编写方法 查询不到结果写法 //    NSPredicate*predicate=[NSPredicate predicateWithFormat: @"province LIKE...查询不到结果写法 //    NSPredicate*predicate=[NSPredicate predicateWithFormat:@"province LIKE '%@?'

    72150

    OC学习14——谓词

    一、谓词的基本概念与使用 1、谓词(NSPredicate)用于定义一个逻辑条件,通过该条件可执行搜索或内存中的过滤操作。上一篇文章中介绍的集合都提供了使用谓词对集合进行过滤的方法。...OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词语句,就可以从数组中过滤出我们想要的数据...2、创建谓词之后,如果谓词中没有占位符,则可以直接使用NSPredicate的evaluateWithObject:方法计算谓词的结果,该结果总是一个BOOL值; 1 #import NSPredicate predicateWithFormat: 9 @"name like 's*'"]; 10 FKUser* user1...集合,返回集合中符合谓词条件的元素组成新集合   NSMutableArray提供了如下方法使用谓词来过滤集合: -(void)filteredUsingPredicate:(NSPredicate *

    1.1K100

    iOS-谓词的使用详解import typedef NS_ENUM(NSInteger, PersonSex) {

    一、NSPredicate基本语句 只要我们使用谓词(NSPredicate)都需要为谓词定义谓词表达式,而这个表达式必须是一个返回BOOL的值。 谓词表达式由表达式、运算符和值构成。...1.比较运算符 比较运算符如下 =、==:判断两个表达式是否相等,在谓词中=和==是相同的意思都是判断,而不是赋值 NSNumber *testNumber = @123; NSPredicate...*predicate = [NSPredicate predicateWithFormat:@"SELF = 123"]; if ([predicate evaluateWithObject:testNumber...NSArray *testArray = @[@1, @2, @3, @4, @5, @6]; NSPredicate *predicate = [NSPredicate predicateWithFormat...*predTemp = [NSPredicate predicateWithFormat:@"%K > $VALUE", @"age"]; // 指定$VALUE的值为 25 NSPredicate

    1.6K50

    iOS中CoreData数据管理系列三——添加与查询数据

    四、查询数据     CoreData中通过查询请求来对数据进行查询操作,查询请求由NSFetchRequest来进行管理和维护。     ...NSFetchRequest主要提供两个方面的查询服务:     1.提供范围查询的相关功能     2.提供查询结果返回类型与排序的相关功能     NSFetchRequest中常用方法如下: //...创建一个实体的查询请求 可以理解为在某个表中进行查询 + (instancetype)fetchRequestWithEntityName:(NSString*)entityName; //查询条件 @...property (nullable, nonatomic, strong) NSPredicate *predicate; //数据排序 @property (nullable, nonatomic,... fetchRequestWithEntityName:@"SchoolClass"];     //设置条件为 stuNum=60的数据     [request setPredicate:[NSPredicate

    88030

    MagicalRecord,一个简化CoreData操作的工具库

    - Wikipedia MagicalRecord 受Ruby on Rails活动记录获取方式的便利性影响.项目目标是: 清理我的Core Data相关代码 支持清晰,简单,一行代码式的查询...= [Person MR_findAllWithPredicate:peopleFilter]; 返回 一个 NSFetchRequest NSPredicate *peopleFilter = [NSPredicate...departments]; NSFetchRequest *people = [Person MR_requestAllWithPredicate:peopleFilter]; 每执行一次,就创建一个这些查询条件对应的...自定义查询请求 NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"Department IN %@", departments...+MR_importFromObject: 会尝试基于配置的查询值(参见_relatedByAttribute_ 和 attributeNameID)来寻找一个已经存在的实体.它遵循Cocoa内置的导入相关的编程范例需要的键值对

    1.6K50
    领券