美文网首页selector
iOS 为什么必须在主线程中操作UI

iOS 为什么必须在主线程中操作UI

作者: chsasaw | 来源:发表于2016-08-13 23:31 被阅读85次

    因为UIKit不是线程安全的
    试想下面这几种情况:

    • 1.两个线程同时设置同一个背景图片,那么很有可能因为当前图片被释放了两次而导致应用崩溃。

    • 2.两个线程同时设置同一个UIView的背景颜色,那么很有可能渲染显示的是颜色A,而此时在UIView逻辑树上的背景颜色属性为B。

    • 3.两个线程同时操作view的树形结构:在线程A中for循环遍历并操作当前View的所有subView,然后此时线程B中将某个subView直接删除,这就导致了错乱还可能导致应用崩溃。iOS4之后苹果将大部分绘图的方法和诸如 UIColor 和 UIFont 这样的类改写为了线程安全可用,但是仍然强烈建议讲UI操作保证在主线程中执行。

    相关文章

      网友评论

        本文标题:iOS 为什么必须在主线程中操作UI

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