UITableView动态单元格内容

时间:2013-03-25 15:37:13

标签: ios objective-c cocoa-touch

我用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}}?

提前完成了......

4 个答案:

答案 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