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的状态。

  • 相关阅读:
    Java统计程序运行时间(转)
    有符号定点数的表示方法
    移位运算符
    索引
    self与super的区别(转)
    Java经典题型(未完成)
    ObjectiveC 的 self 和 super 详解
    边界计算与不对称边界
    各种排序总结
    运算符的优先级
  • 原文地址:https://www.cnblogs.com/Kingly/p/5237847.html
Copyright © 2011-2022 走看看