我发现自己反复编写以下代码行
let alert = UIAlertController(title: "Something went wrong", message: "This is why something went wrong", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)
然后我将填充来自title
个对象的警告和按钮的message
和NSError
。为了寻找一种更好,更有效的方式,我遇到了Apple's Error Handling Programming Guide,这似乎很有希望:
注意:从OS X版本10.4开始,您可以使用
alertWithError:
类NSAlert
类方法,以便在创建NSAlert
对象时使用显示警报对话框或工作表。该方法从传入的NSError
对象中提取其消息文本,信息文本和按钮标题的本地化信息。您还可以使用presentError:
消息显示错误警报。
NSError
类包含专门用于显示在警报视图中的属性(至少对于OS X而言)。不幸的是,我无法为iOS找到类似的方法。
是否有一种简单方便的方法可以在iOS中的警报中显示错误对象?
答案 0 :(得分:1)
将您自己的扩展名编写为extension UIAlertController {
func alert(with error: Error) -> UIAlertController {
// Create and setup the alert as needed using the error
var res = UIAlertController(title: "Something went wrong", message: "Some message", preferredStyle: .alert)
res.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
return res
}
}
:
NSError
如果需要,请更新参数以使用let alert = UIAlertController.alert(with: someError)
self.present(alert, animated: true)
和/或根据需要添加其他参数以满足您的需求。
然后您可以按如下方式使用它:
!
答案 1 :(得分:0)
是否有一种简单方便的方法可以在iOS中的警报中显示错误对象?
UIAlertController
不使用方便的(自动解析)方式显示Error
/ NSError
atm。 UIKit
不提供任何内容,因此您最终会获得自定义解决方案。
答案 2 :(得分:-1)
NSError
具有localizedDescription
属性,可在UIAlertController's
消息中显示如下,
let alert = UIAlertController(title: "Something went wrong", message: error.localizedDescription, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)