在對象數組中做一個謂詞過濾。
數組中的對象有兩個屬性: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)
如果你的_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