• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > 问题背后的问题读后感iosloading问题

问题背后的问题读后感iosloading问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了问题背后的问题读后感,问题背后的问题,qbq问题背后的问题,问题背后的问题心得,追问问题背后的问题是等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:问题背后的问题读后感 ios loading问题
描述:

// 操作1
dispatch_async(dispatch_get_main_queue(), ^{
    [SVProgressHUD show];//loading动画
});

// 操作2
NSArray *files = @[model];
DownFileDataControl *downVC = [[DownFileDataControl alloc]init];
downVC.rootViewController = curViewController;
downVC.thisModel = model;
downVC.modelList = files;
[downVC downLoadFlieToThePhoneWithThreeModel:model];//根据model对象里的一个文件地址去读取文件。读取完全后跳转到一个新的页面

(SVProgressHUD 是异步操作的话有办法改成同步吗)

上述代码,在一个方法体内写的,因为读取文件的时间比较长,所以想着在读取前加一个loading效果,但是加上之后,发现loading依然是等操作2执行完毕后才显示效果,操作2执行时候(读取文件)程序有一种假死的感觉,请问,是什么原因,如何让loading先出来,再执行操作2


解决方案1:

由于GCD中线程中执行了自己会卡死,先使用[NSThread currentThread].isMainThread判断下主线程,如果为主线程就直接显示。
操作2也看是否在主线程中,如果为主线程中,通过GCD在另一个线程中执行。

解决方案2:

你这个方法是在主线程里执行的吗?dispatch_async 是分发到主线程来异步执行显示 loading 动画,这个代码会在下次循环才被执行,所以底下的代码会比显示 loading 动画先执行。把 dispatch_async 去掉,就是同步了啊。 那个 downLoadFlieToThePhoneWithThreeModel:model 是同步的还是异步的啊?

解决方案3:

一般你不需要去调整ProgressHUD的方法,而是要确定哪些是耗时操作,然后将耗时操作放在非主线程里,否则界面会卡死。

[downVC downLoadFlieToThePhoneWithThreeModel:model];

在你的问题里,这一句的实现就是关键,你到底做了什么,在什么线程做的,好好检查一下。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 问题背后的问题读后感cocopod语法的一个问题
  • 问题背后的问题读后感远程仓库的问题
  • 问题背后的问题读后感iosloading问题
  • 问题背后的问题读后感iOSGCD队列阻塞问题

相关文章

  • 2017-06-05 iOS开发,xcode模拟器如何模拟网速,求答案,谢谢!!
  • 2017-06-05 iosGCDAsyncSocket收不到服务器的数据,发送数据正常
  • 2017-06-05 iOS百度导航和百度语音静态库冲突如何解决?合并两个静态库出现Undefinedsymbols的问题该如何解决?
  • 2017-06-05 iOS用AVCapturePhotoOutput拍摄raw格式相片
  • 2017-06-05 端粒和端粒酶关于服务端与移动端交互的几个问题
  • 2017-06-05 UI_APPEARANCE_SELECTOR写与不写好像没有区别
  • 2017-06-05 手机qq浏览器如何去掉浏览器底部的菜单栏?
  • 2017-06-05 afnetworkingAFNetWorking做网络请求的一个问题。
  • 2017-06-05 啊啊啊啊啊啊啊啊啊啊啊啊啊啊堆糖首页这样的效果怎么实现啊?
  • 2017-06-05 ios使用afnetworking上传文件经常上传超时,但是重新上传又可以,在线求大神

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 图片裁剪(制作裁剪框)
    • js获取圆坐标iOSUITextView获取某一行的文本
    • swift2我该如果把keyboard加在view上面,而不是让它自动跳出来
    • ios7通知栏天气小程序怎么推送通知消息到通知栏
    • 月圆人圆事事圆如果定义一个只有上边圆角的UIButton
    • IOSApp开发和发布过程中用到的证书
    • 忘记了一句代码:在1秒内执行操作(有动画的感觉)。比如TextFiled随键盘弹起,落下。
    • 正比例反比例iOS单例创建的一点疑惑
    • #import<xx/xxh>filenotfound
    • 关于IOStableView刷新问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有