另一種快速的一個:想知道如何使代碼等待塊用於別的東西來完成
如果我執行這樣的事情:
runningAnimation = YES;
[self performSelector:@selector(animationsComplete) withObject:nil afterDelay:0.1[;
// Return to main function
-(void) mainFunction
{
while (runningAnimation)
{
continue;
}
}
// And, animationsComplete looks like this:
-(void) animationsComplete
{
runningAnimation = NO;
}
的計劃似乎從來沒有走出while循環。 誰能告訴我爲什麼這是?
另一方面,如果這種類型的「等待我的代碼執行完某件事情」在我嘗試做的事情上不可能發揮作用,那麼還有另一種方法可以做同樣的事情嗎? 要暫停只是一個功能,而等待
[self performSelector:withObject:afterDelay:]
調用來完成? 對不起,如果這似乎是一個業餘愛好者的問題。 我是一個業餘愛好者。
所以,當我打電話performSelector -EXACTLY-發生了什麼先前存在的條件是,performSelector:方法被調用,調用performSelector方法:都在同一個主線程。程序執行是否到達performSelector:afterDelay:命令,然後繼續執行代碼?或者它是否停止,直到afterDelay:時間段過去?我覺得如果我理解 - 完全 - 在非常「接近金屬」級別發生了什麼,我將能夠更好地使用該命令...... –