我正在使用此代码获取JSON的值,
NSDictionary *dict = [list objectAtIndex: 0];
vehicleList = [dict objectForKey: @"assets"];
NSString *identity = [dict objectForKey: @"identity"];
for (NSUInteger index = 0; index < [vehicleList count]; index++) {
itemDict = [vehicleList objectAtIndex: index];
NSMutableArray *listVehicles = [itemDict objectForKey: @"identity"];
NSLog(@"Assets: %@", listVehicles);
}
它正常工作并显示确切的结果
Assets: 34DL3611
Assets: 34GF0512
Assets: 34HH1734
Assets: 34HH1736
Assets: 34YCJ15
我想使用这些值来填充数组,以便我将该数组用于tableview。
答案 0 :(得分:3)
将您的listVehicles设为NSMutableArray
并执行[listVehicles addObject:[itemDict objectForKey:@"identity"]]
,而不是您当前在循环中执行的操作。
答案 1 :(得分:1)
如果我正在阅读您所说的内容,我建议您稍微改变一下for循环,以提高可读性并简化方法。
NSDictionary * dict = [list objectAtIndex: 0];
NSArray * vehicles = [dict objectForKey:@"assets"];
NSMutableArray * listVehicles = [NSMutableArray arrayWithCapacity:vehicles.count];
for (NSDictionary * currentDictionary in vehicles)
{
NSString * identity = [currentDictionary objectForKey:@"identity"];
[listVehicles addObject:identity];
NSLog(@"Added %@ to the array, which is now contains %d objects", identity, listVehicles.count);
}
这是一个很好的内置功能,可以防止您需要处理计数并调用objectForIndexAt:
我只是快速输入,但我很确定它会做你正在做的事情。如果没有,我仍然鼓励你调整它并使用那种迭代风格,我想你会喜欢它。