0

plist からの配列があり、各値にはキーと文字列、およびオンラインの json ファイルから取得したセカンダリ配列が含まれています。最初の配列のキーに基づいて、2 次配列を並べ替えたいと考えています。

私はこのようなことを達成したい:

array1: Item0 - EUR - 文字列 Item1 - USD - 文字列 Item2 - AUD - 文字列 など

array2: Item0 - AUD - 123.242 Item1 - EUR - 535.123 Item2 - USD - 325.646 など

両方に同じキー インデックスがありますが、array1 のキー インデックスの順序に基づいて、array2 からキー インデックスの値を取得したいと考えています。

オンラインで調査しましたが、実装方法を理解できる適切なソリューションが見つかりません。

どうすればこれを実装できますか?

ここに plist ファイルがあります - https://gist.github.com/iulianvarzaru/11c400ba1edf4a165082

そしてjsonファイル - https://gist.github.com/iulianvarzaru/1915e02a9201c57f49b3

4

3 に答える 3

1

リンク先の JSON ファイルに配列ではなく辞書が含まれていることを考えるとarray1、plist ファイルから単純に繰り返すことができます。その配列の各要素は、「Cod」キーと「Descriere」キーを持つ辞書です。「Cod」キーの値を取得し、JSON ファイルからディクショナリへのキーとしてその値を使用します。

NSDictionary* jsonFileDict = ...;
NSDictionary* jsonFileInnerDict = jsonFileDict[@"rate"];
for (NSDictionary* dict in array1)
{
    NSString* code = dict[@"Cod"];
    NSNumber* jsonNumber = jsonFileInnerDict[code];
    // Do something with jsonNumber
}
于 2013-11-09T16:56:27.710 に答える
0

配列ではなく、応答で辞書を扱っています。

あなたはそれを次のようなものに変換する必要があります

{ 
    @"currency": @"EUR",
    @"value": 123.45
}

次のように作成して並べ替えます

NSArray *keys = @[@"EUR",@"USD",@"AUD"];
NSDictionary *dict = @{@"AUD":@(123.242), @"EUR": @(535.123), @"USD": @(325.646)};
NSMutableArray *result = [@[] mutableCopy];

for (NSString *key in keys) {
    [result addObject:@{@"value":dict[key], @"currency": key}];
}
NSLog(@"%@", result);

(
        {
        currency = EUR;
        value = "535.123";
    },
        {
        currency = USD;
        value = "325.646";
    },
        {
        currency = AUD;
        value = "123.242";
    }
)

または、この情報を処理できるモデル クラスを記述します。

于 2013-11-09T17:04:30.850 に答える