如何在循环中将NSMutableDictionary的Object添加到NSMutableArray

Ber*_* II 24 iphone nsmutablearray nsmutabledictionary

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

这是我的代码:

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];
Run Code Online (Sandbox Code Playgroud)

从上面的代码中,数组workOrders将只添加最后一个对象的副本.我坚持到这里无法进展以显示正确的数据.

任何帮助将不胜感激.

谢谢

Ken*_*ker 27

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


Akk*_*kku 20

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


Gir*_*ari 7

将您的字典创建代码移动到循环内部(如果条件内部)

woRows = [[NSMutableDictionary alloc] init];
Run Code Online (Sandbox Code Playgroud)

你正在使用相同的对象......