2009-08-03 13 views
2

2つのNSDictionariesを取り、1つのNSMutableArrayを取り込むことは可能ですか?NSDictionaryを1 NSMutableArrayに置き換えます。

dict1 =キー/値: は、だから私はこのような状況を持って言うことができます ID/firstnameの

のdict2 =キー/値: ID /姓

が(これらはデータベースから移入されていますサーバーへのクエリ)

ここで、辞書を "user"オブジェクトのNSMutableArrayに結合したいと思います。ユーザーオブジェクトは、上記の2つのNSDictオブジェクトにマッピングするこれらの変数を持っています。だから: id、ファーストネーム、ラストネーム(すべてがNSString)

私はいろいろ試しました。

NSEnumeratorを使用してNSDictionaryのキー/値を抽出し、ループの速度を遅くしてみましたが、結果のオブジェクトをmutablearrayに追加すると、配列内のオブジェクトの値が初期化されるすべての先行値については同じオブジェクトに変換します。例:

ID:1 - ファーストネーム:ジョン - 姓:ブラウン
ID:2 - ファーストネーム:マイク - 姓:ブルー
ID:3 - ファーストネーム:メアリー - 姓:ホワイト

時まで私が列挙して行われ、ループの最後に到達しています、私の配列は、(すべてのオブジェクトが同一である)、このようになります

ID:3 - ファーストネーム:メアリー - 姓:ホワイト
ID:3 - FIRSTNAME:メアリー - 姓:白
id:3 - ファーストネーム:Mary - 姓:White

アドバイスはありますか?

答えて

4

ないコードスニペットは助けるが、ここで私はそれについて移動する方法をだかもしれないが、あなたの問題が何であるかを確認します。

for (NSString *key in [dict1 allKeys]) { 
    User *u = [[User alloc] initWithId:key 
          firstName:[dict1 objectForKey:key] 
          lastName:[dict2 objectForKey:key]]; 
    [users addObject:u]; 
    [u release]; 
} 

彼らは何で保証されていないので、私はオブジェクト自体のためNSEnumeratorを使用していないだろう注文。

既にこれが実行されている場合は、User initメソッドを使用して何かを見てみる必要があります。実際、同じオブジェクトを繰り返し使用していますか?

+0

エド - ありがとう、それは魅力のように働いた!私は自分のinitメソッドを利用しないことで状況を複雑化していました。再度、感謝します。 – Ferris

+0

あなたの問題のために働いた場合は、彼の答えに合格とマークする必要があります。 – Jonah

関連する問題