我对调试和找出错误并不太好。因此,我的应用程序基本上会有一个通知,当按下“通话”通知的操作时,会弹出一个警告,并在调度通知时调用您最初放入UITextField的号码。当该操作由于某种原因将我带入应用程序时,我甚至没有收到警报并且弹出Thread 1: EXC_BREAKPOINT
错误。任何帮助都会很棒:)谢谢。这是我的代码,问题可能来自:
在我的ViewController子类中:
func showAlert(title: String, message : String, buttonTitle1: String, buttonTitle2: String,window: UIWindow){
// create the alert
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert)
// add the actions (buttons)
alert.addAction(UIAlertAction(title: buttonTitle1, style: UIAlertActionStyle.default, handler: { action in
if let url = URL(string: "tel://\(self.phoneNumber.text)") {
UIApplication.shared.open(url, options: [:])
}
}))
alert.addAction(UIAlertAction(title: buttonTitle2, style: UIAlertActionStyle.cancel, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
//Main Stuff
var window: UIWindow?
ViewController扩展名:
extension ViewController: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
if response.actionIdentifier == "call" {
self.showAlert(title: "Enter Call", message: "Are you sure?", buttonTitle1: "Go", buttonTitle2: "Cancel", window: self.window!)
}
}
}
答案 0 :(得分:0)
要关闭意外断点,您可以转到"断点导航器"。
在Xcode窗口的左侧,您会看到看起来像一个梯形的图标(它是此屏幕截图左上方的红色圆圈):
虽然我的屏幕截图中当前只设置了一个断点,但您的项目中可能会设置更多断点(偶然)。如果切换蓝色标志,则断点将被禁用。您可以将该标志拖离列,并删除断点。
您还可以在点击标记的同时按住控制键,然后您会看到一个允许您执行相同操作的弹出菜单。
最后,有一个"停用断点" Xcode" Debug"中的菜单选项菜单,您可以在其中切换菜单"取消激活"和"激活"。
答案 1 :(得分:0)
您可能会因为在主线程之外启动UI活动而崩溃。尝试将DIAlert调用包装在DispatchQueue中,如下所示:
func showAlert(title: String, message : String, buttonTitle1: String, buttonTitle2: String,window: UIWindow){
DispatchQueue.main.async {
// create the alert
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert)
// add the actions (buttons)
alert.addAction(UIAlertAction(title: buttonTitle1, style: UIAlertActionStyle.default, handler: { action in
if let url = URL(string: "tel://\(self.phoneNumber.text)") {
UIApplication.shared.open(url, options: [:])
}
}))
alert.addAction(UIAlertAction(title: buttonTitle2, style: UIAlertActionStyle.cancel, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}