当我尝试上传和下载文件时,我正在尝试做一些进度指示。
我一直在读,看起来这是我需要使用的方法。
- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite我想了解更多关于这个函数是如何工作的(比如,它什么时候被调用等等),但似乎找不到参考文档。我访问了这个URL,但它没有显示任何有关该特定功能的信息。
我在哪里可以读到更多关于它的信息?
谢谢,
T形三通
发布于 2012-02-23 05:26:15
NSURLConnection对其代表有一个非正式的协议。这种情况在OSX5中发生了改变(我认为在iOS上也发生了同样的情况)。他们弃用了NSURLConnection中声明的方法,并将它们转移到正式协议NSURLConnectionDelegate和NSURLConnectionDataDelegate中。
现在是有趣的部分。他们弃用了这些方法,他们甚至从NSURLConnection文档中删除了这些方法,但他们没有记录新的正式协议。目前,只记录了NSURLConnectionDelegate。任何地方都没有提到NSURLConnectionDataDelegate。
有两种方法可以找到该方法的用途。
NSURLConnection文档(例如iOS 4.3)。我想给你一个链接,但我在网上找不到。也许您已经在Xcode NSURLConnectionDataDelegate,然后按enter。您已经找到了标头,方法在那里有一个描述:在上载操作期间调用connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:以提供进度反馈。请注意,如果请求需要为retransmitted.,则这些值可能会以意外的方式更改
发布于 2012-02-23 05:44:15
如果你担心支持的话,试试AFNetworking吧,它是ASIHTTPRequest的流行替代品。它还内置了对下载进度的支持。(See discussion on this link.) Here is a recent discussion of how to actually use it。
更新
How do I track upload or download progress? (AFNetworking常见问题解答)
AFURLConnectionOperation提供了方法setUploadProgressBlock:和setDownloadProgressBlock:。每个方法都有一个单独的参数,该参数是一个在请求的生命周期内定期执行的块。该块没有返回类型,并带有3个参数:此回调读取或写入的字节数、到目前为止读取或写入的总字节数以及预期读取或写入的总字节数。
如果要更新进度条,可以设置相应的进度块,将进度设置为读取或写入的字节总数除以预期数量,并在0.0和1.0之间进行归一化。基于此值的UI更新将在发出请求时异步更新。
https://stackoverflow.com/questions/9402711
复制相似问题