2017-10-17 70 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',然后创建一个新的并添加代码。你做到了吗? –