Блоки потрясающие.
Если вам нужно вызвать код в одном классе из другого класса после того, как событие произошло, блоки являются идеальным решением. До того, как блоки стали доступны, вы, как правило, работали с таким дизайном, используя шаблон делегата, и это хорошо, но это может быть сложно, в таких ситуациях, как ваша, когда вам просто нужно отключить предупреждение. Таким образом, использование блоков - намного более чистое решение, ИМО.
Создайте метод в вашем классе ServerConnection
, который использует блоки для обратного вызова. Что-то вроде
- (void) connectWithCompletionBlock(void(^))completionBlock;
Тогда вы бы вызвали метод connectWithCompletionBlock:
следующим образом:
[myServerConnection connectWithCompletionBlock: ^ { [waitAlert dismissWithClickedButtonIndex:0 animated:TRUE]; }];
Как только объект ServerConnection
получает ответ от сервера, вы можете запустить блок завершения.