【问题标题】:How can I get the [Error]: from NSError.description?如何从 NSError.description 中获取 [Error]:?
【发布时间】:2026-01-12 23:20:07
【问题描述】:

我正在尝试创建一个只显示NSError.description 错误的UIAlertView

例如:

var alert = UIAlertView(title: "Oops!", message: error.description, delegate: self, cancelButtonTitle: "OK")
alert.show()

说出error.description 输出:

2015-02-01 02:26:43.227 UserLogin[249:13655] [Error]: missing username (Code: 200, Version: 1.6.2)

我怎样才能在String 中获得[Error]: missing username?我是应用程序开发的新手,我只是希望我的错误消息对用户有意义并且简单。

如果这没有意义,我正在使用 Parse 并且正在处理注册表单。如果发生错误,例如“缺少用户名”“用户名被占用”等。我只是想找到一种方法让一个简单的错误弹出窗口说 “用户名被占用”

【问题讨论】:

    标签: ios xcode swift nserror


    【解决方案1】:

    您可以使用NSErrorlocalizedDescription 属性。

    error.localizedDescription代替error.description

    var alert = UIAlertView(title: "Oops!", message: error.localizedDescription, delegate: self, cancelButtonTitle: "OK")
    alert.show()
    

    注意:

    UIAlertView 在 iOS 8 中已弃用,请改用 UIAlertController

    【讨论】:

      【解决方案2】:

      试试这个:

      if let dic  = error?.userInfo {
         let errorString = dic[NSUnderlyingErrorKey]?.localizedDescription
         var alert = UIAlertView(title: "Oops!", message:errorString, delegate: self, cancelButtonTitle: "OK")
         alert.show()
      }
      

      【讨论】:

        【解决方案3】:

        在您朝那个方向前进之前,您应该非常非常认真地思考您收到的 NSError 是否应该被用户看到。许多 NSError 只能由程序员检查。在这种情况下,“缺少用户名”似乎是一个强烈的迹象,表明你,程序员,在发送没有用户名的请求时犯了一个错误,而且一开始就不应该这样做。因此显示错误警报可能是完全错误的解决方案。

        【讨论】: