关于NSpredicate

/*

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。

定义(最常用到的方法):

NSPredicate这个类有点类似于数据库中的查询,是用于在一批内容中查询符合条件的子集,中文翻译成“谓词”。这个翻译实在让我感觉很别扭,虽然明知道和谓语这个词语没什么关系,但确实总让我感觉这是一个句子里面的成分。

我们有些时候会有一个对象的数组或者集合,然后希望从里面找出符合条件的集合,类似于做一次过滤操作。比如我有一批照片,希望能找出所有某一天里面拍摄的内容。

NSPredicate类的创建往往使用predicateWithFormat的方法,这个方法的使用有点类似于stringWithFormat方法。

*/

//查询单词里面包含“ang”的字符串

NSArray *array = [[NSArray alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan", nil];

NSString *string = @"ang";

NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",string];

NSLog(@"%@",[array filteredArrayUsingPredicate:pred]);

//查找名字里面包含“王”的姓

NSArray *array = [[NSArray alloc]initWithObjects:@"小王",@"王力",@"李丽",@"方方", nil];

NSString *match = @"*王*";

//查找姓王的名字,王字必须为首字则修改NSString *[email protected]"王*";

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@", match];

NSArray *results = [array filteredArrayUsingPredicate:predicate];

for (id str in results) {

NSLog(@"%@",str);

}

时间: 2024-11-18 15:38:29

关于NSpredicate的相关文章

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

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

谓词(NSPredicate)

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

iOS之谓词(NSPredicate)(正则表达式和UIBarController)

iOS之NSPredicate(正则表达式和UIBarController) 本文转发至:https://segmentfault.com/a/1190000000623005 NSPredicate,这个类和我上一篇博文中提到的valueForKeyPath一样很强大.它的使用主要集中在两个方法中 NSArray - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; NSMutableArray - (void)f

iOS之NSPredicate(正则表达式和UIBarController):谓词

//  实例化对象的头文件 @property (nonatomic, strong)NSString *name;@property (nonatomic, assign)NSString *sex;@property (nonatomic, assign)NSInteger tel;@property (nonatomic, assign)NSInteger qq; - (Member *)initWithDic:(NSDictionary *)dic;+ (Member *)memberW

[示例]NSPredicate基础-查询数组中负荷条件的子集

代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): NSPredicate这个类有点类似于数据库中的查询,是用于在一批内容中查询符合条件的子集,中文翻译成“谓词”.这个翻译实在让我感觉很别扭,虽然

iOS-OC-基础-NSPredicate常用方法

NSpredicate 常用方法 // 谓词的条件查询 > .< .==.!= NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"age > 20"]; NSArray *arr1 = [stuArray filteredArrayUsingPredicate:predicate1]; NSLog(@"arr1 = %@",arr1); //使用表达式 NSPredicate

iOS中的过滤器和正则表达式(NSPredicate,NSRegularExpression)

参考链接:http://www.cocoachina.com/industry/20140321/8024.html NSPredicate Cocoa提供了一个NSPredicate类,它用来指定过滤器的条件 初始化方法 + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...; Format: /** 1.格式说明符 %d和%@等插入数值和字符串,%K表示key 还可以引入变量名,用$,类似环境变量,如:@"n

【学习ios之路:UI系列】NSPredicate相关用法

NSPredicate NSPredicate是一个Foundation类,它指定数据被获取或者过滤的方式. 它的查询语言就像SQL的WHERE和正则表达式的交叉一样,提供了具有表现力的,自然语言界面来定义一个集合被搜寻的逻辑条件. NSPredicate的几种用法 ①常见形式 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == 'zhangdan'"]; //注意:如果谓词串中的文本块未被引用,则被看

CoreData用法三: NSPredicate在CoreData中的使用

NSPredicate在CoreData中常用作查询使用,相当于sql语句中的where查询子句. 最常用的方法为: NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; 比如我们要查询student表中name="jjy"的信息,我们可以这样去用NSPredicate NSEntityDescription * emEty = [NSEntityDescription entityForName:

HTTPPost/AFNetWorking/JSONModel/NSPredicate

一.HTTPPost================================================ 1. POST方式发送请求 HTTP协议下默认数据发送请求方法是GET方式,若需要使用POST方法,则需要对发送的请求也就是request对象,进行属性设置. 步骤如下: > 要发送的请求对象,需要使用可变请求对象 [[NSMutableURLRequest alloc] initWithURL:] 此时创建的请求对象,其相关属性是可以进行设置的,通过NSURLRequest创建