connectionDidFinishLoading不会立即调用

时间:2010-12-29 06:39:58

标签: objective-c ios4

我的应用会调用网络服务来加载数据。每次我发送请求时,方法连接:didReceiveData:调用非常快,我在这个方法中放了一个NSLog语句,我可以看到我收到的数据与HTTP头字段Content-Length中显示的相同。因此,不应再收到任何数据。实际上,连接:didReceiveData不再被调用。但我的connectionDidFinishLoading每次都会在1分钟后被调用。知道发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

多次调用

connection:didReceiveData:。您必须获取该数据并将其附加到上次调用时获得的数据。只有当您收到connectionDidFinishLoading时,您才知道传输已完成且您拥有所有这些数据。

因为你收到一些数据并不意味着它已经完成了。很可能服务器花了很长时间来完成请求,或者你的代码中的其他问题,比如你的回调中的过多数据处理延迟了最终回调的执行。