如何在UIAlertController中显示(NS)错误?

时间:2018-04-01 16:52:05

标签: ios swift

我发现自己反复编写以下代码行

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个对象的警告和按钮的messageNSError。为了寻找一种更好,更有效的方式,我遇到了Apple's Error Handling Programming Guide,这似乎很有希望:

  

注意:从OS X版本10.4开始,您可以使用alertWithError:NSAlert类方法,以便在创建NSAlert对象时使用显示警报对话框或工作表。该方法从传入的NSError对象中提取其消息文本,信息文本和按钮标题的本地化信息。您还可以使用presentError:消息显示错误警报。

NSError类包含专门用于显示在警报视图中的属性(至少对于OS X而言)。不幸的是,我无法为iOS找到类似的方法。

是否有一种简单方便的方法可以在iOS中的警报中显示错误对象?

3 个答案:

答案 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)