ios用AFNetworking异步get完数据以后,要回到主线程。get函数中的block里的操作是
主线程的吗?那我get完之后进行后续相关的操作岂不是一定要放在success块里不能放在viewDidLoad中,不然因为是异步的就得不到数据了。
success中不能保证是主线程,一般也不是主线程。你需要主动的dispatchqueue.main等方法来让你的代码在主线程处理UI相关的操作
Are AFNetworking success/failure blocks invoked on the main thread
默认情况下,self.completionQueue是空,因此success和failure的回调是在主线程中执行。所有尽量不要在这些回调中执行过多占用CPU的代码。如果这些回调确实需要占用CPU,则建议创建一个单独的任务队列,并赋值给afnetworking的completionQueue属性。
默认主线程
不能依赖success是否在主线程来执行后续操作
默认是主线程,你数据请求success后是需要刷新页面的,如果你用了UITableView,你可以在viewDidLoad中创建UITableView,get成功以后需要调用刷新列表 [self.tableView reloadData];