AFNetworking中success执行的语句是否回到了主线程?

ios用AFNetworking异步get完数据以后,要回到主线程。get函数中的block里的操作是
主线程的吗?那我get完之后进行后续相关的操作岂不是一定要放在success块里不能放在viewDidLoad中,不然因为是异步的就得不到数据了。

5个回答

图片说明
可以自己指定回调的线程的,不指定的话,默认主线程。

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];

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐