iOS委托中解决异步问题

来源:互联网 发布:战国无双2知乎 编辑:程序博客网 时间:2024/05/16 14:03

大家先看一段伪代码:
fun
{
A( )

if(condition == true) {
B( )
}
}

满足条件condition,才会执行B,而condition的值是在函数A中得到的。
但是呢,A中有异步的委托,也就是,在执行完A后,它的委托函数还没有执行,也就是 condition的值还没有真正改变,而只有执行完 fun
之后,才会去执行委托函数。怎么解决这个问题呢?

纠结了很久,今天总算有了一点注意,异步,异步,异步,多线程,不是常听说互斥可以解决吗?
对头,就新增一个布尔变量,设为false,只有变为true的时候,才会判断例子中的if条件,否则sleep(),而设true的情况恰好发生在委托的函数中。这样就是

fun
{
A( )

while(b == false)
sleep(5);
if(condition == true) {
B( )
}
}

这样应该可以了吧,不知OC中有没有sleep类似功能的函数,也希望大家提出有效的解决方案。

原创粉丝点击