模棱两可的表达式类型错误(Swift 2)
Posted
技术标签:
【中文标题】模棱两可的表达式类型错误(Swift 2)【英文标题】:Ambiguous expression type error ( Swift 2 ) 【发布时间】:2015-11-11 18:25:35 【问题描述】:我有一个警报弹出窗口,我向其中添加了一个操作,该操作具有可能引发异常的回调。
问题是,在下面的代码中,style: .Default 附近有一个模棱两可的表达式类型错误。这显然是由于错误而发生的:如果我删除整个 catch 块并将 try 替换为 try! - 错误就消失了。
我很困惑,需要你的帮助!
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
【问题讨论】:
如果使用UIAlertActionStyle.Default
而不是.Default
,是否还有错误?
是的。我试过了,但错误仍然存在。
我的错,似乎很明显。话说submitAnswer
的签名是什么?
【参考方案1】:
错误信息具有误导性。真正的问题是你的catch
声明不是“详尽的”。编译器不知道
UserInputError
是唯一可能抛出的错误。
这应该可以解决它:
do
try self.submitAnswer(answerField.text!)
catch let error as UserInputError
// a UserInputError
catch let error
// some other error
【讨论】:
谢谢!这有帮助!我完全忘记了!以上是关于模棱两可的表达式类型错误(Swift 2)的主要内容,如果未能解决你的问题,请参考以下文章
Swift 本地通知:没有更多上下文的表达式类型是模棱两可的