1

我通过 NSURLConnction 从服务器获取数据,并希望从获取的数组中填充表格视图。数据出现在 NSURLConnection 委托方法的日志中,但我意识到numberOfRowsInSectionUITableView 委托方法(DM)之前触发

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {}

NSURLConnection 的 DM。这给我带来了一个问题,因为即使很难我得到正确返回的数据行数总是0(零)..我该如何解决这个问题请分享任何想法..谢谢

4

2 回答 2

2

didRecieveData 可能被多次调用,并不表示所有数据都已获取。你应该在你的类上实现一个私有属性,例如;

@property (nonatomic,retain) NSMutableData tableData;

在你的 didRecieveData 上;

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
   [self.tableData appendData:data];
}

之后,当您的连接关闭时

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // use tableData and refresh table...
    [self.tableView reloadData];
}
于 2012-10-08T08:58:33.647 回答
1

您需要[tableView reloadData];在结束时调用-connection:didReceiveData:以更新表格视图。

编辑:巴图是对的!你需要在最后调用它-connectionDidFinishLoading:

于 2012-10-08T08:57:03.493 回答