0

我使用使用创建UITableView的标签创建一个NSArray按照这里的教程。现在我正在尝试UITableView使用从我的服务器中提取的动态内容进行创建。数据的提取与我这样分配的 JSON 配合得很好:

- (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]);
    }
}

那么我该如何更换

tableData = [NSArray arrayWithObjects:@"Item", @"Item",
            @"Item", @"Item", @"Item", @"Item", @"Item",
            @"Item", @"Item", nil];

这是在我的

- (void)viewDidLoad

与“临时工” NSMutableArray

提前谢谢...

4

4 回答 4

1

解析完 JSON 后,添加以下内容:

self.tableData = [NSArray arrayWithArray:tempholder];

然后你很可能想要重新你的桌子。

于 2013-03-25T15:41:08.573 回答
1

你几乎可以在任何使用 NSArray 的地方使用 NSMutableArray。用 tempholder 替换您的 tableData 引用(或重命名 tempholder 更有意义)。相反,如果确实需要,也可以将 tableData 设置为 tempholder。

于 2013-03-25T15:42:00.263 回答
1

将 tempHolder 数组设置为 tableData,然后在 connectionDidFinishLoading: 方法结束时重新加载表视图。

tableData = tempholder;
[self.tableView reloadData];
于 2013-03-25T15:42:02.963 回答
1

在您的代码中,您已在 viewDidLoad 方法中初始化 NSArray

tableData = [NSArray arrayWithObjects:@"Item", @"Item", @"Item", @"Item", @"Item", @"Item", @"Item", @"Item", @"Item", nil];

而不是 NSArray 使用 NSMutableArray 。

然后当您从服务器接收数据时,只需执行以下操作

[tableData removeAllObjects];
tableData = tempholder
于 2013-03-25T15:44:11.730 回答