2 daffodilgirl DaffodilGirl 于 2013.03.07 11:04 提问

使用NSPredicate过滤NSArray

有一个NSArray,我想用predicate过滤一下。

NSLog(@"text is %@",txtSearch.text);
NSPredicate *bPredicate =
[NSPredicate predicateWithFormat:@"SELF beginswith[c] '%@'",txtSearch.text];
arrSearchedPlayers =
[arrPlayers filteredArrayUsingPredicate:bPredicate];
NSLog(@"array after searched is %@",arrSearchedPlayers);

但是再输入文本时数组还是空的,使用下面的predicate的话就结果正常:

 NSPredicate *bPredicate =
    [NSPredicate predicateWithFormat:@"SELF beginswith[c] 's'"];

这是为什么呢?

1个回答

zhanglei5415
zhanglei5415   Rxr 2013.03.07 11:25
已采纳
NSPredicate *bPredicate =[NSPredicate predicateWithFormat:@"SELF beginswith[cd] %@",txtSearch.text];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一套基于NSPredicate的NSArray过滤框架
GHArrayFilter 一套NSArray的过滤Api,底层利用NSPredicate实现 基本函数 where(keypath) :如果是字符串数组,传nil,否则传model类的属性名query() :最终的执行函数,每次查询结尾必须调用 运算 运算函数中 可以传基本类型,其结果等同于NSNumber 可以传char ,const char,char []
谓词 NSPredicate 使用 筛选约束 过滤条件
谓词 NSPredicate 使用 筛选约束 过滤条件 过滤集合 BEGINWITH ENDSWITH CONTAINS MATCHES BETWEEN
iOS中NSArray的高级应用-过滤
c/c++开发人员一定很喜欢用boost库,它有很强大的容器功能,在iOS开发中Array也相当于容器,功能也比较强大。NSArray可以用NSPredicate来过滤数组内容,NSPredicate有点像sql+正则表达,具体语法在此不谈,自己google一堆。   不想打字了(我超级懒),用代码说话: //找出一个数组 NSFileManager *fileManager = [
NSPredicate 谓词总结 数组过滤 模糊匹配
NSPredicate 用于指定过滤条件,主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配。 NSPredicate常用方法介绍 1.创建NSPredicate(相当于创建一个过滤条件) NSPredicate *predicate = [NSPredicate predicateWithFormat:@"过滤条件"]; 2.判断指定的对象是否满足NSPredicate创建的过
iOS中NSArray的高级应用-过滤 .
c/c++开发人员一定很喜欢用boost库,它有很强大的容器功能,在iOS开发中Array也相当于容器,功能也比较强大。NSArray可以用NSPredicate来过滤数组内容,NSPredicate有点像sql+正则表达,具体语法在此不谈,自己google一堆。   不想打字了(我超级懒),用代码说话: view plaincopy to clipboardprint?
数组谓词查询法 NSPredicate
NSPredicate:谓词 字面翻译是这个意思,但是我觉得谓词这个词太难以理解了 NSPredicate的具体用途应该还是过滤,类似于过滤条件之类的,相当于一个主语的谓语,所以说会是谓词这个名字。(我是这么理解的) NSPredicate的创建 我们看到创建谓词使用类方法predicateWithFormat: (NSString*) format,format 里的
一个神奇的 NSPredicate, 过滤或者找出两个数组里面的对象的不同
过滤或者找出两个数组里面的对象的不同 省略掉写两个麻烦的for 循环 NSArry *defaultColumnArray = [NSArray arrayWithObjects:@"a1",@"a2",@"a3",@"a4",nil]; NSArry *prmEditArray = [NSArray arrayWithObjects:@"a1",@"a3",@"a4",nil]
iOS NSPredicate数组筛选
NSPredicate条件查询NSPredicate的作用 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。 **条件查询一般是运用于按照条件要求将数组中符合条件的数据筛选出来形成一个新的数组,主要的功能大概如下:代码,例如:NSMutableArray *preditArray = [NSMutableArray arr
iOS---NSPredicate谓词的用法 数组过滤
转载自:http://blog.csdn.net/lmf208/article/details/38345321 NSPredicate是什么 NSPredicate:谓词 字面翻译是这个意思,但是我觉得谓词这个词太难以理解了 NSPredicate的具体用途应该还是过滤,类似于过滤条件之类的,相当于一个主语的谓语,所以说会是谓词这个名字。(我是这么理解的)
NSArray与NSPredicate使用
1、 NSArray 存储的对象为NSString,如:NSArray *array =@["fine", @"sunny" , @"good"]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", "n"]; NSArray *filterdArray = [array filt