1

我想根据从服务器下载的数据量显示 UIProgressbar。

我实现的一种方法是创建一个 NSURLConnection 并设置委托。- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 给了我预期的ContentLengh

在 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 中,我每次都逐步获取数据,直到下载所有数据。

但这并没有解决我的问题。

有没有其他方法可以做到这一点?

感谢您的所有建议。

谢谢

4

1 回答 1

2

如果您知道预期的内容长度,只需将您目前收到的总金额除以您将获得的总金额计算得出:

// 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;
}

如果您在除法上收到类型警告,请在进行除法之前长时间投射。

于 2009-12-02T15:10:52.813 回答