无法在NSURLSession委托方法中更新用户界面

用户1734282
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask
 *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
{
    float progress = (float)((float)totalBytesWritten /(float)totalBytesExpectedToWrite);
    self.progressView.progress = progress;
    self.progressLabel.text = [NSString stringWithFormat:@"%.2f%%", progress*100];
}

我正在通过iOS 7中添加的NSURLSession下载文件。到目前为止,一切正常,但是由于某些原因,用户界面未更新。我已经检查了该方法正在被调用,并且我也可以NSLog进度。

也许因为这种方法经常被调用?但是如何更新用户界面,例如,如果有进度条呢?提前致谢 :)

马丁·科尔斯

NSURLSession默认在后台线程中运行,因此您需要在主线程上调用UI更新。

dispatch_async(dispatch_get_main_queue(), ^{
    // perform on main
    float progress = (float)((float)totalBytesWritten /(float)totalBytesExpectedToWrite);
    self.progressView.progress = progress;
    self.progressLabel.text = [NSString stringWithFormat:@"%.2f%%", progress*100];
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在NSURLSession委托方法中更新用户界面

来自分类Dev

在ReactJS中自动更新用户界面

来自分类Dev

实时更新用户界面

来自分类Dev

$ scope。$ on不会更新用户界面

来自分类Dev

$ scope。$ on不会更新用户界面

来自分类Dev

即时更新用户界面

来自分类Dev

无法在 wordpress 中更新用户名

来自分类Dev

根据以前的更新动态更新用户界面

来自分类Dev

合并框架更新用户界面无法正常工作

来自分类Dev

无法更新用户:UserCannotBeAlteredWithoutSessionError

来自分类Dev

对话框关闭后更新用户界面

来自分类Dev

什么时候可以安全更新用户界面?

来自分类Dev

在线程内部使用runOnUiThread()更新用户界面

来自分类Dev

Android-使用异步更新用户界面

来自分类Dev

Caliburn.Micro不更新用户界面

来自分类Dev

如何停止更新用户界面(通过服务)?

来自分类Dev

使用复选框实时更新用户界面

来自分类Dev

在Django中更新用户

来自分类Dev

在 Angular 1 中更新用户

来自分类Dev

在 Django 管理界面中验证新用户密码

来自分类Dev

更新用户信息

来自分类Dev

在Appcelerator中更新用户(不是已登录的用户)

来自分类Dev

PropertyChanged无法更新用户控件中的UI-通用应用

来自分类Dev

ExpressJS - 无法获取更新用户的数据

来自分类Dev

无法添加新用户

来自分类Dev

无法添加新用户

来自分类Dev

无法登录新用户

来自分类Dev

无法登录新用户

来自分类Dev

在开发过程中更新用户控制