2017-10-17 34 views
0

我使用此代碼來觸發我的視圖控制器中的按鈕。該按鈕將用於撥打緊急服務。代碼似乎不起作用。快速調用IBAction方法不起作用

let busPhone = 112; 

@IBAction func NoodnummerCal(sender: Any) { 

    if let url = NSURL(string: "tel://\(busPhone)") { 
     UIApplication.shared.openURL(url as URL) 
    } 

當運行應用程序,並按下按鈕的應用程序的現金:

終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,原因是:「 - [ONGEVAL.Gewonden NoodnummerCal:]:無法識別的選擇器發送到實例

+0

您是否有堆棧跟蹤? – Ssswift

+0

來自[this](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/debugging_with_xcode/Art/dwx-qs-12_2x.png)圖片。看看名爲'console'的右下角面板。在那裏,你應該尋找像'理由','錯誤','無效','例外',看看他們看到什麼,然後搜索他們,看看你能否找到你的問題的答案。如果您通過搜索找到答案,請刪除此問題。如果您沒有編輯具體的錯誤問題,並通過閱讀其他答案告訴我們您嘗試了什麼,那麼我們可以建議進一步的步驟...... – Honey

+1

在崩潰時顯示錯誤消息。 –

回答

0

即使您使用的是舊語法,您的通話代碼仍在工作。您的錯誤來自您的@IBAction。取而代之的是用新的語法去除那個動作並創建一個新動作。下面還有一個帶有當前語法的更新呼叫代碼:

@IBAction func callButtonClicked(_ sender: Any) { 
    let busPhone = 112 
    if let url = URL(string: "tel://\(busPhone)") { 
     UIApplication.shared.open(url, options: [:], completionHandler: nil) 
    } 
} 
+0

現在這個應用程序沒有汽車,但它也不會調用。 –

+1

@JensVandenEede確保將它連接到按鈕(您應該看到IBAction聲明旁邊的空圓圈,只需將其拖動到所需的按鈕)。 –

+1

從您的代碼和Storyboard中刪除舊的'IBAction',然後創建一個新的並添加代碼。你做到了嗎? –