我希望在函数完成后几秒钟显示一个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,但它看起来不像我可以延迟那个。
答案 0 :(得分:0)
您的问题是在主线程上调用HUD并且未设置为等待。因此它会触发你的functionA,然后立即调用你的performSelector for function B.如果你想让函数B正确执行,你必须在函数A的末尾调用它。