UITableView委托触发NSURLConnection委托

时间:2012-10-08 08:48:59

标签: ios uitableview nsurlconnection

我从服务器通过NSURLConnction获取数据,并希望从fetched数组中填充tableview。数据出现在NSURLConnection委托方法的日志中,但我意识到UITableView委托方法(DM)的numberOfRowsInSection

之前触发
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {}

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

2 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:1)

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

编辑:巴图是对的! 您需要在-connectionDidFinishLoading:

结束时调用它