didReceiveData没有获取所有数据

时间:2013-11-20 11:53:41

标签: ios nsurlconnection

我正在尝试使用NSURLConnection下载JSON,但除非我强制应用暂停几秒钟,否则我得到的数据不完整。它总是大约2600字节,我的响应应该是大约70000。

任何线索为什么会发生这种情况?

谢谢

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    _responseData = [[NSMutableData alloc] init];
    //sleep(10);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [_responseData appendData:data];
    [self getDataJSON: _responseData];
}

2 个答案:

答案 0 :(得分:4)

didReceiveData被多次调用,而它正在接收数据

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [_responseData appendData:data];

}

你必须等到它完成接收数据

- (void)connectionDidFinishLoading:(NSURLConnection*)connection
{
     [self getDataJSON: _responseData];
}

答案 1 :(得分:0)

连接完成后,您可以获得完整的数据。 NSURLConnection在调用connectionDidFinishLoading:委托方法时完成。在该方法中尝试[self getDataJSON: _responseData];。祝你好运!