iOS分块上传,进度直接返回100%,捕捉不到中间进度?

_progressBlock返回percent参数,对参数*100为百分比格式,然后显示到界面上,然而一执行上传,直接就返回100%,没有显示中间进度变化,不知问题出在哪,特来请教?

阅读 3.9k
2 个回答

如果 Networking 框架使用的是 AFNetworking 1.x,可以使用 AFURLConnectionOperation 类的
- (void)setUploadProgressBlock:(void (^)(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite))block 来获取上传进度。

如果打开的方式没错的话,有可能导致这种问题的可能:

  • 文件太小小于缓冲区大小,一个包就发送完了;

  • 网速太快了,可能有分包发送,但是毫秒级别的时间内就发送完了,眼睛看不出界面的变化过程。

解决方式

  • 打开方式错的话,就难说了,要看具体的代码;

  • 有一个方法可以“解决”网速太快看不到进度的问题,修改进度值的时候,添加动画;比如进度从0%设置到50%,虽然值只改变了一次,但是界面上你可以做动画,每0.02秒钟增加1%,这样动画时长是1秒,用户就能看到一个快速增加的百分比。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题