我正在尝试将多维数组分配给我的UITable View构造的单维数组。我决定使用循环来节省时间,因为数据加载对于手动添加数组非常麻烦。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *responseString1 = [[NSString alloc] initWithData:responseData1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",responseString1);
SBJsonParser *parser = [[SBJsonParser alloc] init];
id sample = [parser objectWithString:responseString1];
for (int i = 0; i < [sample count]; i++) {
[tableData addObject:[[sample objectAtIndex:i]objectAtIndex:1]];
NSLog(@"%@",[sample objectAtIndex:i]);
NSLog(@"%@",[tableData objectAtIndex:i]);
}
[alert dismissWithClickedButtonIndex:0 animated:YES];
}
现在是NSLog的'sample'反映了数据,但'tableData'的NSLog反映了NULL。
提前完成
答案 0 :(得分:1)
假设tableData
为空NSMutableArray
,请使用
[tableData addObject:[[sample objectAtIndex:i]objectAtIndex:0]];
如果您确实想要更改tableData
而不是构建,请使用
[tableData replaceObjectAtIndex:i withObject:[[sample objectAtIndex:i]objectAtIndex:0]];
答案 1 :(得分:0)
NSMutableArray不是像id myArray[5];
这样的静态c数组,它就像c ++ veсtor<NSObject *>
,所以你不能用[tableData objectAtIndex:i] = ...
将元素放在其中,你应该使用它的方法{{1 (将元素放到数组的末尾)或[tableData addObject:...]
答案 2 :(得分:0)
您要做的事情最好转换为:
[tableData replaceObjectAtIndex:i withObject:[[sample objectAtIndex:i]objectAtIndex:0]];