我在点击功能的简单视图中有一个按钮:
@IBAction func watchAlert(sender: AnyObject) {
showAlert()
for i in 1...2{
AudioServicesPlaySystemSound (1005);
sleep(2)
}
}
func showAlert(){
var alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
self.presentViewController(alert, animated: true, completion: nil)
alert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: dismissAlert ))
}
func dismissAlert(alertView: UIAlertAction!)
{
println("User click ok button")
}
即使我在播放音频之前尝试调用showAlert(),我也只能在声音播放后才能看到警报。我希望警报首先出现,然后发出声音。 任何帮助表示赞赏。
答案 0 :(得分:3)
取出sleep
命令(你必须从不 sleep
主线程 - 看门狗进程会杀死你,此外,你错误地冻结了整个界面)。相反:显示提醒,然后使用延迟的效果(如在我的delay
实用程序here中)播放声音。
(您的代码还有其他问题;特别是,您还需要找到一种新方法来播放声音两次,因为您不能使用sleep
;这也可以使用{来完成{1}} - 嵌套。)