0
我有一個函數返回一個布爾值,取決於通過UIAlertController的用戶輸入。由於該函數的設置,我必須在用戶響應代碼之外返回Bool。我有一個變量會攜帶Bool值直到返回,但由於整個函數在用戶響應之前進行評估,所以響應不起作用。有沒有辦法阻止函數繼續進行,直到給出響應?暫停功能,直到用戶輸入
我有一個函數返回一個布爾值,取決於通過UIAlertController的用戶輸入。由於該函數的設置,我必須在用戶響應代碼之外返回Bool。我有一個變量會攜帶Bool值直到返回,但由於整個函數在用戶響應之前進行評估,所以響應不起作用。有沒有辦法阻止函數繼續進行,直到給出響應?暫停功能,直到用戶輸入
我假設你的代碼類似於
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
。
如果您的函數中的某些代碼需要在警報之前執行,那麼只需將您的代碼分成兩個函數,或者只是將回調後應執行的代碼放置在回調塊內部