我想根据从服务器下载的数据量来显示UIProgressbar。
我实现的一种方法是创建一个NSURLConnection并设置委托。- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)响应给出了expectedContentLengh
在- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data中,我每次都会逐个获取数据,直到所有数据都下载完毕。
但这并没有解决我的问题。
有没有其他方法可以做到这一点?
感谢您的所有建议。
谢谢
发布于 2009-12-02 23:10:53
如果你知道预期的内容长度,只需将你到目前为止收到的总和除以你将获得的总金额:
// These should be properties of the delegate class
UIProgressView * progressView;
long long expected;
long long gotSoFar;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
gotSoFar += data.length;
progressView.progress = gotSofar / expected;
}如果你得到关于除法的类型警告,在除法之前长时间强制转换。
https://stackoverflow.com/questions/1833416
复制相似问题