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

  • 相关阅读:
    Python基础知识2-内置数据结构(上)
    vs code的快捷方式
    vs code配置
    vs code安装
    web浏览器兼容问题
    js正則表達式
    MVC MVP MVVM
    vue-cli(vue脚手架)
    web攻擊
    web前端面試題
  • 原文地址:https://www.cnblogs.com/Kingly/p/5237847.html
Copyright © 2011-2022 走看看