如何将NSMutableDictionary的对象添加到循环中的NSMutableArray中

问题描述:

我很难将数据结构添加到数组中以从循环创建字典数组。我只知道在NSMutableArray中的addObject只添加指向它的指针。我想知道如何实现我的目标。如何将NSMutableDictionary的对象添加到循环中的NSMutableArray中

这里是我的代码:

NSMutableDictionary *woRows = [[NSMutableDictionary alloc] init]; 
NSMutableArray *workOrders = [[NSMutableArray alloc] init]; 
while ([theScanner isAtEnd] == NO) 
{ 
    if ([theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol1] && 
     [theScanner scanString:@"{US}" intoString:NULL] && 
     [theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol2] && 
     [theScanner scanString:@"{US}" intoString:NULL] && 
     [theScanner scanUpToCharactersFromSet:usSet intoString:&tempCol3]&& 
     [theScanner scanString:@"{RS}" intoString:NULL]) 
    { 
     [woRows setValue:tempCol1 forKey:@"hours"]; 
     [woRows setValue:tempCol2 forKey:@"colMain"]; 
     [woRows setValue:tempCol3 forKey:@"colAddtl"]; 

     [workOrders addObject:woRows]; 
     [woRows release]; 
    } 
} 
[tmpString release]; 
[jobs addObject:workOrders]; 
[workOrders release]; 

从上面的代码中,阵列工作订单将只有最后添加对象的副本。我卡在这里无法进展显示正确的数据。

任何帮助将不胜感激。

感谢

尝试做[workOrders addObject:[woRows copy]];

+1

它工作,我喜欢你的方法,并在我的代码中使用。任何想法,为什么我不能投票给你的答案?它保持变回零 – 2009-12-24 12:27:10

移动循环内你的字典创建代码(如内部条件)

woRows = [[NSMutableDictionary alloc] init]; 

您使用相同的对象...

+1

谢谢,它的工作。任何想法,为什么我不能投票给你的答案? – 2009-12-24 12:25:05

+0

即使你没有最低的投票声望...... – 2009-12-24 13:05:26

我知道,这有点晚了,甚至不是你要求的,但我想你想用[woRows setObject:forKey:]而不是[woRows setValue:forKey:]