Gia*_*nzi 29 nsurlconnection ios5
我正在查看NSURLConnection
可用于建立与URL的同步或异步连接然后检索其数据的类... IOS 5对此类进行了很多更改,我看到他们引入了一些正式的与身份验证或下载相关的协议,但是我没有看到,例如,connection:didReceiveResponse:
消息(先前发送给代理并且它不再可用)在某些协议中仍然可用.如何实现异步一旦收到响应,就连接并检索HTTP标头?我敢肯定有一种方法比使用更好NSURLConnection
随着connection:didReceiveResponse:
消息..等的方法stringWithContentsOfURL
也总是同步加载的内容?您在应用程序中使用什么来实现异步下载,避免使用已弃用的方法并对_http响应receive_m等事件做出反应?如果可能,您是否在后台任务中启动同步下载?
小智 68
NSURLConnectionDelegate
已经成为一个正式的协议(它是以前版本中的一个非正式协议).在此协议中,声明了以下(非弃用)方法:
connection:didFailWithError:
connectionShouldUseCredentialStorage:
connection:willSendRequestForAuthenticationChallenge:
此外,有两个子协议符合NSURLConnectionDelegate
:
NSURLConnectionDataDelegate
用于将数据加载到内存的委托,并声明以下方法,其中一些我相信您会觉得熟悉:
connection:willSendRequest:redirectResponse:
connection:didReceiveResponse:
connection:didReceiveData:
connection:needNewBodyStream:
connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:
connection:willCacheResponse:
connectionDidFinishLoading:
NSURLConnectionDownloadDelegate
用于将数据直接存储到磁盘文件的委托,并声明以下方法:
connection:didWriteData:totalBytesWritten:expectedTotalBytes:
connectionDidResumeDownloading:totalBytesWritten:expectedTotalBytes:
connectionDidFinishDownloading:destinationURL:
如您所见,您仍然可以使用以前的代表,可能需要稍作修改.
有关更多信息,请参阅本地Xcode安装中的iOS 4.3到iOS 5.0 API差异文档和NSURLConnection.h.发布新的SDK版本时,头文件中的文档比开发人员库中提供的文档更可靠,这并不罕见.后者需要一段时间才能保持最新状态.