我用UITableView
创建一个NSArray
,其标签是使用UITableView
创建的。遵循教程here。现在我正在尝试使用从我的服务器中提取的动态内容创建- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *responseString1 = [[NSString alloc] initWithData:responseData1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",responseString1);
SBJsonParser *parser = [[SBJsonParser alloc] init];
id sample = [parser objectWithString:responseString1];
tempholder=[NSMutableArray arrayWithCapacity:[sample count]];
for (int i = 0; i < [sample count]; i++) {
[tempholder addObject:[[sample objectAtIndex:i]objectAtIndex:0]];
//NSLog(@"%@",[sample objectAtIndex:i]);
NSLog(@"%@",[tempholder objectAtIndex:i]);
}
}
。数据的提取与我分配的JSON很好地协同工作:
tableData = [NSArray arrayWithObjects:@"Item", @"Item",
@"Item", @"Item", @"Item", @"Item", @"Item",
@"Item", @"Item", nil];
那么如何更换
- (void)viewDidLoad
在我的
中NSMutableArray
使用'tempholder'{{1}}?
提前完成了......
答案 0 :(得分:1)
解析完JSON后,添加:
self.tableData = [NSArray arrayWithArray:tempholder];
然后你会想要重新开始你的桌子。
答案 1 :(得分:1)
你可以在任何使用NSArray的地方使用NSMutableArray。用tempholder替换tableData引用(或者将tempholder重命名为更有意义)。相反,如果你真的需要,你也可以将tableData设置为tempholder。
答案 2 :(得分:1)
将tempHolder数组设置为tableData,然后在connectionDidFinishLoading:方法结束时重新加载表视图。
tableData = tempholder;
[self.tableView reloadData];
答案 3 :(得分:1)
在您的代码中,您已在viewDidLoad方法中初始化NSArray
tableData = [NSArray arrayWithObjects:@"Item", @"Item", @"Item", @"Item", @"Item", @"Item", @"Item", @"Item", @"Item", nil];
代替NSArray使用NSMutableArray。
然后当您从服务器接收数据时,只需执行以下操作
[tableData removeAllObjects];
tableData = tempholder