如何使用NSPredicate过滤NSArray

时间:2013-11-01 22:43:39

标签: ios objective-c nsmutablearray nsarray nspredicate

我正在尝试过滤我拥有的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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

filterUsingPredicate:是您正在寻找filteredArrayUsingPredicate:

的NSMutable数组的方法

你可以从控制台输出__NSArrayI告诉你有一个不可变的数组实例。

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