启动功能B功能A完成后3秒(使用MBProgressHUD)

时间:2011-08-24 19:39:23

标签: objective-c multithreading function mbprogresshud

我希望在函数完成后几秒钟显示一个UIActionSheet,这是用函数B完成的。

如果我这样做,它的效果很好:

main function
{
[self function A]
[self performSelector:@selector(function B) withObject:nil afterDelay:5];
}

但我使用MBProgressHUD作为活动指标:

main function
{
[HUD showWhileExecuting:@selector(funcion A) onTarget:self withObject:nil animated:YES];
[self performSelector:@selector(function B) withObject:nil afterDelay:5];
}

不起作用,函数B永远不会被调用。如果我将它切换到[自我功能B]它将被调用。我猜这是一个我不理解的线程问题。如果我使用[self performSelectorOnMainThread]它将调用函数B,但它看起来不像我可以延迟那个。

1 个答案:

答案 0 :(得分:0)

您的问题是在主线程上调用HUD并且未设置为等待。因此它会触发你的functionA,然后立即调用你的performSelector for function B.如果你想让函数B正确执行,你必须在函数A的末尾调用它。