我有一个函数,它根据用户通过UIAlertController的输入返回一个Bool值。由于功能的设置,我必须在用户响应代码之外返回Bool。我有一个带有Bool值的变量,直到它返回,但由于整个函数在用户响应之前进行评估,因此响应无效。有没有办法阻止函数继续进行,直到给出响应?
答案 0 :(得分: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
中调用该函数,而不是尝试暂停执行代码(这会冻结整个应用程序)。
如果函数中的某些代码需要在警报之前执行,那么只需将代码分成两个函数,或者只是放置在回调块内返回后应该执行的代码