iOS运行时报错: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.

最近在调OC和UIWebview JS进行交互,打开含有Web的页面时就会报下面的错误,后来发现是因为在JS调用OC是在子线程中,如果JS调OC 要更新当前UI的话就要放在主线程里。
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.

没加在主线程之前的代码

weakself.context[@"jsViewFinish"] = ^() {
            //结束加载动画
            [weakself stopLoadingDataAnimation];
    };

加入主线程后的代码

weakself.context[@"jsViewFinish"] = ^() {
        dispatch_async(dispatch_get_main_queue(), ^{
            [weakself stopLoadingDataAnimation];
        });
    };

推荐阅读更多精彩内容