最近在调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];
});
};