暂时使用下面的代码为用户激活一些正在进行的操作指示(将下载一些文件......如果花费的时间超过一秒钟,我会显示UIActivityIndicatorView
和`UIProgressView。问题是由于某种原因它可以工作iPhone 但在 iPad 上不稳定,尤其是在时间接近极限的时候。
__block BOOL hasDownloads = YES;
__weak typeof(self) weakSelf = self;
double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
if (hasDownloads) {
[weakSelf progressInformationShow:YES];
}
});
在该代码之后,我开始使用完成处理程序在后台线程中下载文件。完成处理程序检查剩余的文件下载,并在最后一次下载完成时将 hasDownloads 标志设置为 NO。
有没有更好的解决方案或者代码有什么问题?
编辑进度块和完成块在垫子上但在电话上被调用?!