功能NSURLConnectionDataDelegate秩序(NSURLConnectionDat

2019-10-29 15:45发布

在NSURLConnectionDataDelegate有一些是确保一切工作,但我从来不知道什么时候会发生什么很重要的几个功能。

功能...

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

和其他几个。

他们总是在我已经把它们的顺序发生的呢? 即是响应你,也可以任何时间发生在连接的生命的第一件事?

Answer 1:

-connection:didReceiveResponse:将被调用0次或更多次。 如果有错误, -connection:didFailWithError:将改为调用。 这种方法可称为不止一次,如果你得到一个多部分MIME消息,将被调用一次有足够的时间来创建响应对象和之前-connection:didReceiveData:被调用。

-connection:didReceiveData:将被调用0次或更多次。 如果有一个以上的0字节的身体更,此方法将之前被调用至少一次-connection:didFinishLoading:被调用。 该方法将以前从未被称为-connection:didReceiveResponse:或后-connection:didFinishLoading:-connection:didFailWithError:

-connection:didFinishLoading:只调用一次,这就是所谓的最后一件事。 此方法返回后的某个时间,连接将被释放。 如果这个方法不叫-connection:didFailWithError:被调用,总是叫过去的事情。

对于时会调用这些方法和在序列文件中的头文件存在,但我还没有看到它在实际的文档编写了简明超。



Answer 2:

对于委托方法无论在哪个顺序ORDER你把他们。 当特定事件被满足,他们会发生。

第二件事情,按照该文件NSURLConnectionDataDelegate协议参考 :

didReceiveResponse:当服务器已经确定它有足够的信息来创建NSURLResponse该方法被调用。 它可以被多次调用,例如在重定向的情况下,所以每次我们重新设置数据。

didReceiveData:当有从连接新的可用数据时调用此方法。 这种方法被称为多时间

connectionDidFinishLoading:当连接完成加载成功发送。 这种方法也被称为在重定向的情况下,多个时间。



文章来源: NSURLConnectionDataDelegate order of functions