美文网首页
iOS通知方法内修改UI无效

iOS通知方法内修改UI无效

作者: 7d3fadbb4407 | 来源:发表于2017-09-20 18:19 被阅读21次

    今天在写一个接收SDK通知,更改按钮的文案,结果发现没有任何的作用。ok,我觉得说不定是xcode问题,赶项目,也懒得重启+清缓存排查问题,直接记录过掉。

    随后我调用了ProgressHUD提示框,报出错误:This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.

    错误的大致意思是:主线程在运行的时候子线程修改了主线程UI的布局约束。虽然不会导致崩溃,程序能正常跑,但有没有发现这个错误正是导致我上个更改按钮文案失败的原因。

    很高兴(心疼xcode几秒钟),问题找着了。解决方法这里也贴一下:

    dispatch_async(dispatch_get_main_queue(), ^{

          // 更新UI的操作

    });

    本着程序员刨根问底的学习精神,找了相关资料,发现接收通知所在的线程由发出通知的线程决定。

    也就是说根据postNotificationName所在的线程决定,而不是addObserver。

    相关文章

      网友评论

          本文标题:iOS通知方法内修改UI无效

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