This application is modifying the autolayout engine from a background thread, which can lead to engi
2017-01-04 21:52
375 查看
解决这个问题的办法是(两种方法):
1.
reloadUI方法是更新页面的方法
2
出现这个错的表现:
回调函数里更新页面,更新不了。我今天调了一个网络请求,请求的回调函数里面reload 了tableview,但是发现页面一直没有刷新,还报了这个错,一开始以为是加载太慢,但是用假数据加载很快,后来以为是网络请求数据出来太慢,后来用了
NSDate* start = [NSDate date];
NSLog(@” cost %f ms”, [[NSDate date] timeIntervalSinceDate:start] * 1000);
这个方法来看请求耗时的,后来看见时间也很短,所以我就想到了可能是线程阻塞了,后来看到控制台报了上面那个错误,就去百度了一下,打到了答案。
出现的原因:
当添加了子线程,没有回到主线程中刷新UI 会报错
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.
此应用程序从一个后台线程修改自动布局引擎,这可能导致引擎腐败和奇怪的崩溃。这将导致将来的版本的一个例外。
1.
[self performSelectorOnMainThread:@selector(reloadUI) withObject:nil waitUntilDone:YES];
reloadUI方法是更新页面的方法
2
dispatch_async(dispatch_get_main_queue(), ^{ [_tableView reloadData]; });
出现这个错的表现:
回调函数里更新页面,更新不了。我今天调了一个网络请求,请求的回调函数里面reload 了tableview,但是发现页面一直没有刷新,还报了这个错,一开始以为是加载太慢,但是用假数据加载很快,后来以为是网络请求数据出来太慢,后来用了
NSDate* start = [NSDate date];
NSLog(@” cost %f ms”, [[NSDate date] timeIntervalSinceDate:start] * 1000);
这个方法来看请求耗时的,后来看见时间也很短,所以我就想到了可能是线程阻塞了,后来看到控制台报了上面那个错误,就去百度了一下,打到了答案。
出现的原因:
当添加了子线程,没有回到主线程中刷新UI 会报错
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.
此应用程序从一个后台线程修改自动布局引擎,这可能导致引擎腐败和奇怪的崩溃。这将导致将来的版本的一个例外。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 云巴 2016 年更新合集——SDK 篇
- 第三方推送已死
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#线程间不能调用剪切板的解决方法
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- 简单对比C#程序中的单线程与多线程设计
- C#停止线程的方法
- C#子线程更新UI控件的方法实例总结
- C#线程队列用法实例分析
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解