公司用的后台有JAVA和PHP两种,而且JAVA数据清除出来以后还存在有换行符/n和空格等异常情况,使用同一个网络请求框架事,JAVA接口需要设置ResponseSerializerHTTP格式,但PHP接口则不需要。由此出现一个BUG,现请求JAVA接口后,在请求PHP接口后,造成代码崩溃。所以就把JAVA接口使用原生NSURLSession进行请求,在成功block中添加数据源和刷新collectionView列表。但是发现tableView并不会刷新。找了一下原因,因为是在NSURLSession 的block中,进入了异步线程,collectionView必须要在主线程中刷新才会起作用。
dispatch_async(dispatch_get_main_queue(), ^{
[self.collectionView reloadData];
});
在NSURLSession网路请求的block中进行,界面的跳转也一样会出现,跳转不执行的情况。同样要到主线程进行跳转
dispatch_async(dispatch_get_main_queue(), ^{
[weakself.navigationController pushViewController:testVC animated:YES];
});