我现在有一个奇怪的边缘案例,来自NSURLConnection委托方法的响应代码:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
在后续委托方法之前触发:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
我的代码当然可以使用改进,因为它现在检查上面的HTTP响应代码,然后调用某些方法来采取行动.不幸的是,那时数据尚未公布.
什么是一些优雅的解决方案,用于耦合response
和responseData
我的类方法直到response
和responseData
200 +没有触发的方式nil
.我是否需要将它们都设置为类实例变量?看起来像一个穷人的解决方案.
数据之前的响应是正确的顺序.实际上,您应该清除此方法中的任何数据(如果您通过重定向收到多个响应,并且任何干预数据已过时).
您收到一个连接:didReceiveResponse:消息,告诉您已收到回复标题,但这发生在任何正文内容之前.
如果您需要访问回复的所有元素,您应该只是存储响应和数据,并且只在connectionDidFinishLoading中处理它们:(或者如果您的数据很长,您可以在连接中逐步处理:didReceiveData :).