NSDictionary到1 NSMutableArray
问题描述:
是否有可能采取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 - 名:玛丽 - 姓:白色
有什么建议吗?
答
不知道你的问题是,一个代码片段可能会有所帮助,但这里是我会怎么做呢:
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
方法来看看一些不可思议的东西。事实上,你是否一遍又一遍地使用同一个对象?
谢谢埃德 - 它的工作就像一个魅力!我没有充分利用我的init方法,使情况过度复杂化。再次感谢。 – Ferris 2009-08-03 05:28:49