Я изучаю блоки из видео в Стэнфорде. Сейчас я участвую в роли, которая объясняет основные данные. Учителя упоминают что-то о:
- (void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler;
Он сказал, что блок завершения обработки будет вызван в потоке, который вызвал метод. Таким образом, в основном метод запускает async, но блоки вызываются в потоке, допускают основной.
Итак, мой вопрос заключается в том, чтобы все блоки запускались в потоке, откуда был сделан вызов метода. Чтобы проиллюстрировать, почему я задаю этот вопрос, у меня есть класс 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...
}
Когда я использую блоки, мне не нужно беспокоиться о возврате в основной поток, если они будут вызваны там, где был сделан вызов?
Надеюсь, что это ясно,
Заранее спасибо