如何将jsonDictionary[@"response"][obj][@"color"]
加载到表视图数组中。下面是我正在使用的示例代码,但每次我在return [tableviewArray count];
收到错误的异常。请为我的问题提供一些解决方案。
NSError *error;
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
// get keys from response dictionary
NSMutableArray * key = [[NSMutableArray alloc] initWithArray:[jsonDictionary[@"response"] allKeys]];
// sort as asending order
NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: YES];
key = (NSMutableArray *)[key sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];
// access inner data from dictonary
for (NSString * obj in key) {
// Here below values I want to apply for tableview array
NSLog(@"%@",jsonDictionary[@"response"][obj][@"color"]);
NSArray *tableviewArray = [jsonDictionary[@"response"][obj][@"color"]];
}
我在下面的tableview方法
上遇到了异常- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [tableviewArray count]; // Here am getting bad exception
}
我的JSON:
{
response: {
RED: {
Color: "red",
color_id: "01"},
GREEN: {
Color: "green",
color_id: "02"}
},
Colorcode: {},
totalcolor: "122"
}
答案 0 :(得分:0)
在.h文件中声明colorArray&在viewDidLoad方法中使用alloc init。 如
- (void)viewDidLoad {
[super viewDidLoad];
colorArray = [[NSMutableArray alloc]init];
}
添加颜色数组如下: -
NSMutableArray
for (NSString * obj in key) {
// Here below values I want to apply for tableview array
NSLog(@"%@",jsonDictionary[@"response"][obj][@"color"]);
[colorArray addObject:dict[@"response"][obj][@"Color"]]; // here I am applying array
}
然后你可以在tableview委托方法中访问colorArray。
答案 1 :(得分:0)
我认为你得到了异常,因为你在加载这个视图控制器时没有初始化它。因为,它也将加载UITableView
并且你应该至少返回0,以便在完成加载后让它显示一个空表视图。对于你的情况,它甚至不返回0,因为你的tableviewArray
是零。因此,您应该在完成加载后调用reload。