2 o 1001 o O_1001_O 于 2013.07.11 10:19 提问

NSPredicate 崩溃于CONTAINS

在对象数组中做一个谓词过滤。

数组中的对象有两个属性:displayValue 和 value。我试着用搜索字符串过滤,然后崩溃了。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"displayValue CONTAINS[cd] %@", searchString];
NSArray *results = [_data filteredArrayUsingPredicate:pred];

报的错误是:Can't use in/contains operator with collection 100 (not a collection)

1个回答

zhanglei5415
zhanglei5415   Rxr 2013.07.11 10:43
已采纳

如果你的_data结构如下

_data=@[{@"displayValue":@"zhangsan",@"value":@"1"},{@"displayValue":@"lisi",@"value":@"2"}];

在使用NSPredicate 过滤时,可以

NSPredicate *pred = [NSPredicate predicateWithFormat:@"displayValue contains [cd] %@", searchString];
NSArray *results = [_data filteredArrayUsingPredicate:pred];

官方文档:NSPredicate

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!