0

次のような辞書を含む配列があります。

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

キーではなく特定の値に基づいて辞書をフィルタリングしたい。たとえば、3500 の任意のキーの値を持つすべての辞書が必要です。これを行う方法を知っている人はいますか?

よろしくお願いします。

4

2 に答える 2

0

次のような述語形式を試してください。

@"%@ IN SELF", testValue

配列をフィルタリングすると、それぞれが に対して実行されますIN。辞書を渡すINと、辞書の値が使用されます。

于 2013-07-24T21:59:26.987 に答える
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
    }
}
于 2013-07-24T22:36:49.860 に答える