это приведет к сбою (при попытке доступа к недоступной памяти):

тирую некоторый код, который выполняет асинхронную обработку с использованием Grand Central Dispatch. Тестовый код выглядит так:

[object runSomeLongOperationAndDo:^{
    STAssert…
}];

Тесты должны ждать окончания операции. Мое текущее решение выглядит так:

__block BOOL finished = NO;
[object runSomeLongOperationAndDo:^{
    STAssert…
    finished = YES;
}];
while (!finished);

Что выглядит немного грубым, знаете ли вы лучший способ? Я мог бы выставить очередь, а затем заблокировать, вызвавdispatch_sync:

[object runSomeLongOperationAndDo:^{
    STAssert…
}];
dispatch_sync(object.queue, ^{});

... но это может показаться слишком много наobject.

Ответы на вопрос(12)

Ваш ответ на вопрос