2015-03-03 114 views
0

我有一個函數返回一個布爾值,取決於通過UIAlertController的用戶輸入。由於該函數的設置,我必須在用戶響應代碼之外返回Bool。我有一個變量會攜帶Bool值直到返回,但由於整個函數在用戶響應之前進行評估,所以響應不起作用。有沒有辦法阻止函數繼續進行,直到給出響應?暫停功能,直到用戶輸入

回答

2

我假設你的代碼類似於

let alert = UIAlertController(title: "test", message: "test", preferredStyle: UIAlertControllerStyle.Alert) 
let ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (action: UIAlertAction!) -> Void in 
    println("EXECUTE CODE HERE") 
} 
alert.addAction(ok) 

self.presentViewController(alert, animated: true, completion: nil) 

而不是試圖暫停代碼執行(這將凍結整個應用程序,如果你能),你應該調用函數回調塊EXECUTE CODE HERE

如果您的函數中的某些代碼需要在警報之前執行,那麼只需將您的代碼分成兩個函數,或者只是將回調後應執行的代碼放置在回調塊內部