我正在从斯坦福视频学习块.我现在正在解释核心数据.老师提到一些关于:
- (void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler;
他说完整的处理程序块将被调用在调用该方法的线程中.所以基本上该方法运行异步,但块被调用在线程,让我们假设main.
所以我的问题是,所有的块都在方法调用的线程上运行.为了说明为什么我问这个问题,我有一个Async类,它要求一个服务器.
所有这些方法的格式是这样的:
- (void) getSomething:(id <delegateWhatever> const)delegate{ goto background thread using GCD.. Got result from server... Go back to main thread and call the delegate method... }
当我使用块,我不需要担心回到主线程,如果他们将被调用在哪里进行调用?
希望这是清楚的,
提前致谢