2 u012840388 u012840388 于 2016.03.06 15:41 提问

iOS开发中,如和使等待block执行完毕后再执行下面的代码?

int a = 0;
void (^requestBlock)(NSDictionary *) = ^(int data){
a = data;//这里假设data = 1,那么a也要 = 1
};
NSLog(a);

这里的a永远是0,在有这段block的前提下,有什么办法让程序同步执行,也就是等待block执行完之后再执行下面的代码?这里只是的例子,我确实有这方面的需要。

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.03.06 18:24

自己用信号量来同步 block后面wait block函数体中最后设置信号量

u012840388
u012840388 我找过相关资料,不知道是不是我写得不对还是方法不行,你可以在我的基础上写给我吗?
一年多之前 回复
u012979318
u012979318   2016.03.07 04:45

completionhandler + GCD试试 如果闭包写得好就不用后者了 还用一种方式用KVO机制去监视一个值 当它满足一定条件后再执行后续方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!