dubai

纯供个人玩乐~~~~

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

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

  • 之前面试时面试官问的问题,一直在找答案,今天在微信团队的分享中看到了,Copy过来与大家分享

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

两个线程同时设置同一个背景图片,那么很有可能因为当前图片被释放了两次而导致应用崩溃。
两个线程同时设置同一个UIView的背景颜色,那么很有可能渲染显示的是颜色A,而此时在UIView逻辑树上的背景颜色属性为B。
两个线程同时操作view的树形结构:在线程A中for循环遍历并操作当前View的所有subView,然后此时线程B中将某个subView直接删除,这就导致了错乱还可能导致应用崩溃。
iOS4之后苹果将大部分绘图的方法和诸如 UIColor 和 UIFont 这样的类改写为了线程安全可用,但是仍然强烈建议讲UI操作保证在主线程中执行。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010026245/article/details/49937621
个人分类: iOS开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭