2009-08-03 73 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

相关问题