I'm having difficulty to add a data structure to an array to create an array of dictionaries from a loop. I just knew that addObject in NSMutableArray only add pointer to it. I would like to know how to achieve my goal.
Here's my code:
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];
from the code above, the array workOrders will have duplicates of last objects added only. I stuck here not able to progress to display the correct data.
Any help will be appreciated.
Thanks
尝试做[workOrders addObject:[woRows copy]];
我知道,这有点晚了,甚至不是您要的,但是我想您想使用[woRows setObject:forKey:]
而不是[woRows setValue:forKey:]
。
move your dictionary creation code inside the loop(inside if condition)
woRows = [[NSMutableDictionary alloc] init];
you are using same object...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.