iOS过滤器数组的字典基于值而不是键

时间:2013-07-24 21:40:07

标签: ios nsarray nsdictionary

我有这样的字典数组:

Array: (
 {
customerUS= {
 DisplayName = "level";
 InternalName = "Number 2";
 NumberValue = 1;
 },
 customerCAN= {
 DisplayName = "PurchaseAmount";
 InternalName = "Number 1";
 NumberValue = 3500;
 };
}
)

我想基于特定值而不是键来过滤字典。例如,我希望所有字典的值都在3500的任何键上。有没有人知道我该怎么做?

我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

尝试谓词格式:

@"%@ IN SELF", testValue

过滤数组时,每个数组都将针对IN运行。当您传递IN字典时,它会使用字典的值。

答案 1 :(得分:0)

您也可以使用

-keysOfEntriesPassingTest:
NSDictionary的

。只需传递一个块:

for(NSDictionary *myDictionary in myArray){ 
    NSSet *resultSet = [myDictionary keysOfEntriesPassingTest:^(id key, id object, BOOL *stop) {
        //assuming that 3500 is an int, otherwise use appropriate condition.
        if([[NSNumber numberWithInt:object] isEqual:[NSNumber numberWithInt:3500]]){
            return YES;
        }else{
            return NO;
        }
     }];
    if (resultSet.count>0){
        //do whatever to myDictionary
    }
}