iOS通知方法内修改UI无效

今天在写一个接收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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容