我有一个警告弹出窗口,我添加了一个具有回调的操作,其中可能会抛出异常。
问题是,在下面的代码中,样式附近存在一个模糊的表达式类型错误:.Default 。这显然是因为一个错误:如果我删除整个catch块并用尝试替换尝试 - 错误就消失了。
我很困惑,需要你的帮助!
let submitButton = UIAlertAction(title: "Submit", style: .Default) { [unowned self, ac] _ in
let answerField = ac.textFields![0]
do {
try self.submitAnswer(answerField.text!)
} catch let error as UserInputError {
}
}
答案 0 :(得分:2)
错误消息具有误导性。真正的问题是你的catch
声明不是"详尽的"。编译器不知道这一点
UserInputError
是唯一可能出现的错误。
这应该解决它:
do {
try self.submitAnswer(answerField.text!)
} catch let error as UserInputError {
// a UserInputError
} catch let error {
// some other error
}