2012-08-27 8 views
9

配列の中の一連の辞書を通過するforループがあります。NSMutableDictionaryにNSDictionaryのエントリに追加

forループを経由してすべての辞書エントリを1つのNSMutableDictionaryに統合するにはどうすればよいですか?

私はaddEntriesFromDictionaryを試しましたが、動作しません。ご協力いただきありがとうございます。

for (int i=0; i<sections.count; i++){ 

    formElements = [[sections objectAtIndex:i]objectForKey:@"Dictionary"];   
} 
+0

あなたは何をキーにしたいですか?たぶん私はあなたを勘違いしています。 –

答えて

10
NSMutableDictionary * mutableDict = [NSMutableDictionary dictionary]; 

for (NSDictionary * formElements in sections) 
{ 
    [mutableDict addEntriesFromDictionary:formElements]; 
} 

これは、キーが共有されていないことが正しい場合に有効です。

+0

大丈夫です。私はそれを試し、あなたに知らせる – user984248

12

以下のような辞書オブジェクトを追加できます。

NSMutableDictionary *mDict=[NSMutableDictionary dictionary]; 
    [mDict addEntriesFromDictionary:DictObj]; 
+0

今何が起こっているのかは、ループをたどるたびに、最後の辞書がそれを追加するのではなく、前の辞書に置き換えられることです。だから私は最初の辞書に5つのエントリ、2つ目の辞書に2つのエントリがあります。最終的には、それらを組み合わせて7つのエントリの数を得たいと考えています。 – user984248

+0

@ user984248はい、キーがお互いを置き換えるためです。おそらく、配列を使用して[array addObject:formElements]を実行してください。 –

+0

これを実行して辞書を最終​​結果として使用できますか?私はすべてのコードを辞書から読み込むように設定しました。 – user984248

0

-objectEnumeratorまたはNSDictionaryの他のmethodfsを使用して辞書を列挙できます。

ループ内では、辞書を列挙し、すべてのオブジェクトにキーを1つの大きな辞書に追加します。

+0

例を教えてください。それは私が探しているものです...最後に一つの大きな辞書です。 – user984248

+0

はい、私はPandey_Laxmanの方がいいです。私はこの方法を完全に忘れてしまった。あなたがまだ例を望むなら、私はそれを提供することができますが、MrAzulayが言ったように、問題は重複した鍵であると思います。私の解決策はこれであなたを助けません。 – Engeor

+0

私は理解しています。彼らは別の鍵を持っている。私はアレイで何ができるのか見てみましょう – user984248

1
NSMutableDictionary *mDict=[[NSMutableDictionary alloc]init]; 
    NSMutableDictionary *mDict2=[[NSMutableDictionary alloc]init]; 

//later suppose you have 5 object in mDict and 2 object in mDict2. combine in this Way. 
    NSMutableArray *keys=[[NSMutableArray alloc]init]; 
    NSMutableArray *obj=[[NSMutableArray alloc]init]; 

    keys=[[mDict allKeys] mutableCopy]; 
    obj=[[mDict allValues] mutableCopy]; 

    [keys addObjectsFromArray:[mDict2 allKeys]]; 
    [obj addObjectsFromArray:[mDict2 allValues]]; 

    NSMutableDictionary *dict=[[NSMutableDictionary alloc]initWithObjects:obj forKeys:keys]; 
関連する問題