我正在尝试过滤我拥有的NSDictionaries数组。

这是我的过滤器当前的样子

NSDictionary *selectedItemDictionary = [sortedItemsArray objectAtIndex:indexPath.row];

NSMutableArray *sortedItemsMutableArrayCopy = [sortedItemsArray copy];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"dpc like %@", [selectedItemDictionary objectForKey:@"dpc"]];
[sortedItemsMutableArrayCopy filterUsingPredicate:predicate];


这就是我的selectedItemDictionary的样子

dc = 3;
Cmp = F;
Qty = 0;
dp = 0;


实际上,我正在尝试搜索sortedItemsArray并创建一个新数组,该数组包含与我的UITableViewCell中的所选行具有相同dc编号的任何内容。
但是,使用上面的代码,我正在接收此错误

 -[__NSArrayI filterUsingPredicate:]: unrecognized selector sent to instance


任何帮助,将不胜感激。

最佳答案

filterUsingPredicate:是您要查找的NSMutable数组的方法filteredArrayUsingPredicate:

您可以从控制台输出__NSArrayI得知您有一个不可变的数组实例。

如果需要可变数组,则需要将[sortedItemsArray copy]更改为[sortedItemsArray mutableCopy]

关于ios - 如何使用NSPredicate过滤NSArray,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19736586/

10-13 01:56