作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法获取点播资源下载的预计时间?
我想在它们全部下载之前显示一个提醒。
[alertDownload showCustom:self image:[UIImage imageNamed:@"icon.jpg"]
color:[UIColor blueColor]
title:@"Download..."
subTitle:@"Download in progress"
closeButtonTitle:nil
duration: ODR ETA];
现在我有
if (request1.progress.fractionCompleted < 1) {
// code above
}
但下载完成后警报不会自动消失,它会查看警报的持续时间。
最佳答案
好吧,如果你能得到fraction complete值并且你能测量时间,那么你就知道你还剩下多长时间了。
开始下载时,在实例变量中记录开始时间:
@interface MyClass () {
NSTimeInterval _downloadStartTime;
}
- (void)startDownload
{
...
_downloadStartTime = [NSDate timeIntervalSinceReferenceDate];
...
}
然后在您的通知处理程序中,在您收到fraction complete 的地方,使用:
double fractionComplete = 0.2; // For example
if (fractionComplete > 0.0) { // Avoid divide-by-zero
NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
NSTimeInterval elapsed = now - _downloadStartTime;
double timeLeft = (elapsedTime / fractionComplete) * (1.0 - fractionComplete);
}
注意:我没有解决您显示警报对话框的问题,而且我认为您使用的逻辑不会起作用(您不希望每次获得更新时都显示新警报)。我避开了这整个区域,只专注于 ETA 逻辑。
关于ios - 还押资源 - 预计时间(以及如何根据下载进度显示提醒),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187416/
我是一名优秀的程序员,十分优秀!