最佳答案
我正在测试一些使用 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
。