Хорошо, так что вы можете объявить глобальное логическое значение, которое скажет вам продолжить или ждать, непосредственно перед вызовом вашего - (void)asyncDoSomething;
метода, вы устанавливаете BOOL wait
на YES
и после того, как вы делаете метод
while (wait) {
[NSThread sleepForTimeInterval:1];
}
, чтобы дождаться вашего ответа, и в вашем асинхронном обратном вызове - (void)onFinishDoSomething;
вы устанавливаете логическое значение на NO
;
Таким образом, ваш метод по-прежнему называется асинхронным, но код после не выполняется перед ответом. Он будет ждать, как если бы он был синхронным.