在NSURLConnectionDataDelegate有一些是确保一切工作,但我从来不知道什么时候会发生什么很重要的几个功能。
功能...
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
和其他几个。
他们总是在我已经把它们的顺序发生的呢? 即是响应你,也可以任何时间发生在连接的生命的第一件事?
-connection:didReceiveResponse:
将被调用0次或更多次。 如果有错误, -connection:didFailWithError:
将改为调用。 这种方法可称为不止一次,如果你得到一个多部分MIME消息,将被调用一次有足够的时间来创建响应对象和之前-connection:didReceiveData:
被调用。
-connection:didReceiveData:
将被调用0次或更多次。 如果有一个以上的0字节的身体更,此方法将之前被调用至少一次-connection:didFinishLoading:
被调用。 该方法将以前从未被称为-connection:didReceiveResponse:
或后-connection:didFinishLoading:
或-connection:didFailWithError:
-connection:didFinishLoading:
只调用一次,这就是所谓的最后一件事。 此方法返回后的某个时间,连接将被释放。 如果这个方法不叫-connection:didFailWithError:
被调用,总是叫过去的事情。
对于时会调用这些方法和在序列文件中的头文件存在,但我还没有看到它在实际的文档编写了简明超。
对于委托方法无论在哪个顺序ORDER你把他们。 当特定事件被满足,他们会发生。
第二件事情,按照该文件NSURLConnectionDataDelegate协议参考 :
didReceiveResponse:当服务器已经确定它有足够的信息来创建NSURLResponse该方法被调用。 它可以被多次调用,例如在重定向的情况下,所以每次我们重新设置数据。
didReceiveData:当有从连接新的可用数据时调用此方法。 这种方法被称为多时间
connectionDidFinishLoading:当连接完成加载成功发送。 这种方法也被称为在重定向的情况下,多个时间。