2015-04-03 25 views
0

越來越顯示我有一個簡單的視圖按鈕上點擊功能:UIAlertView中沒有在合適的時間

@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(),我只能看到只有在播放聲音後纔會顯示警報。我希望警報首先出現,然後聲音應該播放。 任何幫助表示讚賞。

回答

3

取出sleep命令(必須從未sleep主線程 - 看門狗過程會殺了你死了,而且,你被錯誤凍結了整個界面)。相反:顯示警報,然後使用延遲的性能(如我的delay實用程序here)播放聲音。

(還有其他的問題,你的代碼;特別是,你還需要找到播放聲音兩次一種新的方式,因爲你不能使用sleep;這也可以使用delay完成 - 嵌套。 )

+0

這看起來不錯!但我有一個問題,在這種使用延遲的情況下(即殺死所有其他音色),我該如何去解決音樂問題。 – 2015-04-03 17:08:21