zoukankan      html  css  js  c++  java
  • ios更新UI时请尝试使用performSelectorOnMainThread方法

    最近开发项目时发现联网获取到数据后,使用通知方式让列表刷新会存在死机的问题。

    经过上网查找很多文章,都建议使用异步更新的方式,可是依然崩溃。

    最后尝试使用performSelectorOnMainThread方法可以成功更新tableView。

    下面就学习一下这个函数吧!

    NSObject类的performSelectorOnMainThread和performSelectorInBackground可以实现简单的多线程编程技术

    1、- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg

    创建一个线程在子线程执行,aSelector代表了新创建的线程,arg是传入的参数

    2、- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;

    该方法的作用是在主线程中,执行制定的方法(代码块)。

    参数:

    @selector就是,要定义我们要执行的方法。

    withObject:arg定义了,我们执行方法时,传入的参数对象。类型是id。(我们可以传入任何参数)

    waitUntilDone:YES指定,当前线程是否要被阻塞,直到主线程将我们制定的代码块执行完。

    注意:

    1.当前线程为主线程的时候,waitUntilDone:YES参数无效。

    2.该方法,没有返回值

    3.该方法主要用来用主线程来修改页面UI的状态。

  • 相关阅读:
    xampp 80端口被占用后这么办??解决了
    XAMPP配置基于虚拟目录、多域名的环境
    mysql 主从同步
    jquery插件
    Css绘制箭头实现代码
    Ubuntu下mount命令的好用处
    linux下IPTABLES配置详解
    java程序员网站
    1.Hibernate介绍
    1. Mybatis介绍
  • 原文地址:https://www.cnblogs.com/Kingly/p/5237847.html
Copyright © 2011-2022 走看看