美文网首页
iOS 主线程更新UI

iOS 主线程更新UI

作者: O_Ozz | 来源:发表于2017-07-11 11:05 被阅读0次

昨天用了下线程

m_alarmCount = 0;

[_alarmTableView reloadData];

_alarmActivity.hidden = NO;

_alarmStateLabel.hidden = NO;

[_alarmActivity startAnimating];

self.alarmStateLabel.text = [NSString stringWithFormat:@"获取状态中..."];

dispatch_async(dispatch_get_global_queue(0, 0), ^{

int i = 0;

i = [m_logic getAlarmOutCount:m_StatusResult.devID count:&m_alarmCount];

i = [m_logic getAlarmOut:m_StatusResult.devID state:&m_alarmState];

dispatch_async(dispatch_get_main_queue(), ^{

if (m_alarmCount == 0) {

self.alarmStateLabel.text = [NSString stringWithFormat:@"该设备无报警输出通道"];

}

if (i != 0) {

self.alarmStateLabel.text = [NSString stringWithFormat:@"获取报警通道失败"];

}

if (i == 0 && m_alarmCount > 0) {

_alarmStateLabel.hidden = YES;

}

[_alarmActivity stopAnimating];

_alarmActivity.hidden = YES;

[_alarmTableView reloadData];

});

});

最开始把label放入全局异步中,发现无法进行UI更新,需拿出来才可,开发时需牢记:UI的更新只能写在主线程中,否则无法更新

相关文章

  • iOS知识点总结一

    接《iOS知识点大总结一》 三十四、主线程操作UI(对UI进行更新只能在主线程进行) 解释:所谓的在主线程更新UI...

  • iOS中多线程GCD(Grand Center Dispatch

    ios中多线程GCD(Grand Center Dispatch) 特别注意ios中主线程又称作为 UI线程, 主...

  • iOS多线程的使用

    iOS中,只有主线程跟Cocoa关联,也即是在这个线程中,更新UI总是有效的,如果在其他线程中更新UI有时候会成功...

  • iOS 多线程开发

    一、概述 在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程。由于在iOS中除了主...

  • 《从子线程中回调更新tableview》报错 Cannot cr

    描述:在主UI线程中,启动了一个子线程进行计算,计算完毕,回调更新UI中的一个tabelview。界面已经更新,但...

  • Android Handler 笔记

    Handler 发送(延时)/接收/处理消息 1.UI线程更新 2.主/子线程通信 主要的几个类...

  • 多线程编程1-NSThread

    前言 每个iOS应用程序都有个专门用来更新显示UI界面、处理用户触摸事件的主线程,因此不能将其他太耗时的操作放在主...

  • 子线程更新UI的方法

    子线程中不能直接更新UI,如果直接更新的话会发生崩溃所以要在主线程中更新UI,总计三种回到主线程更新UI的方式 1...

  • Android-异步操作更新UI界面的几种方法

    在Android开发中,耗时操作是比较多的,更新ui需要在主线程中,然而耗时操作是不能放在主UI线程中在执行的,因...

  • GCD

    GCD 队列与线程的关系 主队列和主线程 『ios』主线程 和 主队列的关系,绝对安全的UI操作,主线程中一定是主...

网友评论

      本文标题:iOS 主线程更新UI

      本文链接:https://www.haomeiwen.com/subject/xniphxtx.html