我有一个代码块,它循环遍历一个数组并对其执行 block 代码。目前它看起来像这样:
for (NSString *myString in myArray) {
[self doSomethingToString:myString WithCompletion:^(BOOL completion) {
string = [NSString stringByAppendingString:@"Test"];
}];
}
我想等待上一个迭代完成,然后再开始下一个迭代。我如何循环遍历这样的 block 代码?
最佳答案
试试这个
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
for (NSString *myString in myArray) {
[self doSomethingToString:myString WithCompletion:^(BOOL completion) {
string = [NSString stringByAppendingString:@"Test"];
dispatch_semaphore_signal(sema);
}];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);
}
关于ios - 在等待上一个执行完成时循环遍历 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857055/