我的应用会调用网络服务来加载数据。每次我发送请求时,方法连接:didReceiveData:调用非常快,我在这个方法中放了一个NSLog语句,我可以看到我收到的数据与HTTP头字段Content-Length中显示的相同。因此,不应再收到任何数据。实际上,连接:didReceiveData不再被调用。但我的connectionDidFinishLoading每次都会在1分钟后被调用。知道发生了什么事吗?
答案 0 :(得分:1)
connection:didReceiveData:
。您必须获取该数据并将其附加到上次调用时获得的数据。只有当您收到connectionDidFinishLoading
时,您才知道传输已完成且您拥有所有这些数据。
因为你收到一些数据并不意味着它已经完成了。很可能服务器花了很长时间来完成请求,或者你的代码中的其他问题,比如你的回调中的过多数据处理延迟了最终回调的执行。