如何过滤字典数组?

时间:2015-06-02 17:40:08

标签: ios filter

我想过滤下面的光盘数组,这是我的代码,但应用程序正在崩溃

NSPredicate *pred = [NSPredicate predicateWithFormat:@"Id contains[c] %@ ", string];
NSArray *result = [array filteredArrayUsingPredicate:pred];

返回结果;

[{
    "Id": 1,
    "VoteCode": "1"
}, {
    "Id": 2,
    "VoteCode": "1"
}, {
    "Id": 3,
    "VoteCode": "1"
}, {
    "Id": 8,
    "VoteCode": "12345"
}, {
    "Id": 9,
    "VoteCode": "103"
}, {
    "Id": 10,
    "VoteCode": "12345"
}]

1 个答案:

答案 0 :(得分:1)

您的谓词格式错误。 CONTAINS运算符用于字符串比较(请参阅predicate programming guide),但每个字典中的“Id”键不是字符串,而是数字。

您可以将您的Id存储为字符串,也可以使用其他谓词;例如:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K ==[cd] %@ ", @"Id", @1];