问题描述
- iOS开发中,如和使等待block执行完毕后再执行下面的代码?
-
int a = 0;
void (^requestBlock)(NSDictionary *) = ^(int data){
a = data;//这里假设data = 1,那么a也要 = 1
};
NSLog(a);这里的a永远是0,在有这段block的前提下,有什么办法让程序同步执行,也就是等待block执行完之后再执行下面的代码?这里只是的例子,我确实有这方面的需要。
解决方案
自己用信号量来同步 block后面wait block函数体中最后设置信号量
解决方案二:
completionhandler + GCD试试 如果闭包写得好就不用后者了 还用一种方式用KVO机制去监视一个值 当它满足一定条件后再执行后续方法
时间: 2025-01-21 03:09:09