gpt4 book ai didi

iphone - 下载文件时如何为 NSURLConnection 创建进度条?

转载 作者:行者123 更新时间:2023-11-28 17:36:39 26 4
gpt4 key购买 nike

我想在使用 NSURLConnection 下载时显示一个进度条。当我从服务器获取数据时,我可以为每个收到的包更新 UI。但问题是:我如何计算出我已经有多少数据,还有多少数据需要下载?可能以字节为单位...然后我必须做一些数学运算才能得到百分比?

最佳答案

在您的 NSURLConnection 委托(delegate)中,实现类似这样的东西来找出总内容长度。服务器必须支持这一点,但它很可能适用于静态内容:

- (void)connection: (NSURLConnection*) connection didReceiveResponse: (NSHTTPURLResponse*) response
{
statusCode_ = [response statusCode];
if (statusCode_ == 200) {
download_.size = [response expectedContentLength];
}
}

然后像这样更新进度:

- (void) connection: (NSURLConnection*) connection didReceiveData: (NSData*) data
{
[data_ appendData: data];
download_.progress = ((float) [data_ length] / (float) download_.size);
// Broadcast a notification with the progress change, or call a delegate
}

在我的例子中,我有一个具有 sizeprogress 属性的下载实例。它们由全局 DownloadManager 对象拥有,该对象负责通知感兴趣的各方下载进度或状态更改。

关于iphone - 下载文件时如何为 NSURLConnection 创建进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9645512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com