开发者社区> 问答> 正文

关于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)

展开
收起
爵霸 2016-03-19 09:11:25 2704 0
1 条回答
写回答
取消 提交回答
  • 如果你的_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

    2019-07-17 19:07:10
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载