インデックス0, 1 ... n-1
にn個の要素を含むNSArray
があります。 NSDictionary
に配列の内容を設定したいとします。NSArrayからNSDictionaryを作成する(Objective-c 2.0)
特に、辞書にはキーと値のペアが含まれている必要があります。ここで、キーは配列内のi番目の要素のハッシュで、値は配列へのインデックスです。例えば
:array = [123, 101, 199]
その後、辞書が3キーと値のペアが含まれます:私は以上のforループでこれをやった
([123 hash], 0)
([199 hash], 2)
([101 hash], 1)
を配列。 これを行うためのより簡潔な方法は何ですか?おそらくNSKeyValueCodingの何か?
詳細情報:私はこのような何かを考えています:
NSArray *keys = [myArray valueForKey:@"hash"];
NSArray *values = [myArray valueForKey:@"index"]; // @"index" needs to change
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:values
forKeys:keys];
forループは非常に簡潔です。わずかに異なる見た目のバージョンで使用できる構文はいくつかありますが、実際にはほぼ同じ量のコードで同じことをやっています。 –
あなたは正しいのですが、ループはほんの数行です。私はちょうどNSKeyValueEncodingについて学びたいと思います。 – SundayMonday
ああ、別の質問で明示的に質問することができます。 KVC(KeyValueCoding)は、あなたがここでやっていることとは一種の直交性です。あなたがこの質問で話している問題については、ループ(またはそのいとこの1つ)が正しい方法です。 –