xcode - 暂停函数直到用户输入

标签 xcode swift ios8 uialertcontroller

我有一个函数,它根据用户通过 UIAlertController 的输入返回一个 Bool 值。由于函数的设置,我必须在用户响应代码之外返回 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)

与其尝试暂停代码的执行(如果可以的话,这会卡住整个应用程序),不如调用回调 block 中的函数 EXECUTE CODE HERE

如果您的函数中的某些代码需要在警报之前执行,那么只需将您的代码分成两个函数,或者将应该在返回后执行的代码放在回调 block 中

关于xcode - 暂停函数直到用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824844/

相关文章:

ios - 如何在 Xcode 中旋转 UISwitch?

c++ - 由于更新到 Xcode 10 文件未找到错误/派生数据

ios - 为什么我的表格 View 中的单元格不显示任何文本?

ios - 调用函数一段时间然后调用另一个函数 - NSTimer

ios - UIView 在 UIScrollView 中有上边距

swift - 使用未解析的标识符 firebase 函数

ios - Xcode 卡在 'waiting for other symbol processing'

html - Textarea 覆盖在 div 上 - iOS 8 上的对齐问题

ios - 添加新授权过程后 MapKit 崩溃

objective-c - UIPopoverPresentationController 给我黑屏