美文网首页
[iOS]主线程问题:提醒Main Thread Checker

[iOS]主线程问题:提醒Main Thread Checker

作者: Mr周190728 | 来源:发表于2019-10-29 15:52 被阅读0次

一般做服务端的人基本没有MainThread和 BackgroundThread的概念,但是这个概念在客户端中是非常重要的,因为客户端不管安卓还是iOS,UI刷新需要始终占用主线程去刷新,如果一旦占用bg线程,虽然不会发生致命错误,但是也会提示这种warning级别的报错; 同样,如果我们把一些本应该在bg中执行的网络请求放在了Main中,那么会导致UI停止刷新,双方执行了sync操作,体验非常差,这是不规范的操作。

所以

Main Thread Checker: UI API called on a background thread...

Xcode 9 [UIView initWithFrame:] must be used from main thread only

这种错误就是需要查看你代码中有没有UI刷新操作没有强制主线程更新的。

解决方法

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{

UIImage*snapShot=[self generateShadowImage];

dispatch_async(dispatch_get_main_queue(),^{

    imageView.image=snapShot;

});

});

-(UIImage*)generateShadowImage{// It crashes here:

   UIView*shadowView=[[UIView alloc]initWithFrame:CGRectZero];

}

相关文章

网友评论

      本文标题:[iOS]主线程问题:提醒Main Thread Checker

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