2009-08-03 75 views
2

是否有可能採取2 NSDictionaries和填充1 NSMutableArray? 所以可以說我有這樣的情況:中NSDictionary到1 NSMutableArray

dict1 =鍵/值: ID /姓名

dict2 =鍵/值: ID /姓氏

(這些是從數據庫填充查詢到服務器)

現在,我想將字典組合成一個NSMutableArray的「用戶」對象。用戶對象具有這些變量,映射到上面的2個NSDict對象。所以: id,firstname,lastname(一切都是NSString)

我嘗試了各種各樣的東西。

問題是,當我提取NSDictionary鍵/值(使用NSEnumerator - 但也嘗試用一個較慢的for循環),並將結果對象添加到mutablearray,數組中的對象的值被初始化到所有前面的值的相同的對象。例如:

ID:1 - 名字:約翰 - 名字:布朗
ID:2 - 姓:邁克 - 名字:藍
ID:3 - 姓:瑪麗 - 名字:白色

的時候我用枚舉完成,並達到循環的結束,我的陣列看起來像這樣(所有的對象都是相同的)

ID:3 - 姓:瑪麗 - 名字:白色
ID:3 - 姓:瑪麗 - 姓:白色
id:3 - 名:瑪麗 - 姓:白色

有什麼建議嗎?

回答

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 2009-08-03 05:28:49

相關問題