【问题标题】:How to work with errors in swift 3?如何处理 swift 3 中的错误?
【发布时间】:2016-11-16 18:36:58
【问题描述】:

我正在使用以下代码:

   let jsonData1 = (try? Data(contentsOf: URL(string: "\(label2)")!)) as Data!
    var error : NSError?
    let ReadableJSON1 = JSON ( data:jsonData1!, options: JSONSerialization.ReadingOptions.mutableContainers, error: nil )


    if (error != nil){

        let myAlert = UIAlertController(title: "Alert", message: error?.localizedDescription, preferredStyle: .alert) //you can change message to whatever you want.
        let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
        myAlert.addAction(okAction)
        self.present(myAlert, animated: true, completion: nil)

        return
    }

如果应用程序在打开链接中的 json 文件时发现错误,它应该向用户显示警报。目前它正在崩溃,似乎这些操作没有执行,这就是我没有看到警报的原因。请你帮我解决这个问题。

【问题讨论】:

标签: swift alert nserror


【解决方案1】:

试试这个代码:

var json : [String: AnyObject]? // Property
do {
    let jsonData1 = (try? Data(contentsOf: URL(string: "\(label2)")!)) as Data!
    json = try JSONSerialization.jsonObject(with: jsonData1, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: AnyObject]
} 
catch let error as NSError {
    let myAlert = UIAlertController(title: "Alert", message: error?.localizedDescription, preferredStyle: .alert) //you can change message to whatever you want.
    let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
    myAlert.addAction(okAction)
    self.present(myAlert, animated: true, completion: nil)

    return
}

希望它会有所帮助!快乐编码!

【讨论】:

  • 我应该在哪里使用该代码,因为我看不到这里的 json 链接是如何读取的
  • 好吧,您需要读取 do { } 块内的响应数据。我已经编辑了答案。请检查
  • let jsonData1 = (try?Data(contentsOf: URL(string: "(label2)")!)) as Data!.. 如果这行代码返回 Data?在此处添加一些日志并检查问题所在。
  • 您正在使用一些库来解析 JSON 数据。我使用了 Apple 提供的 JSONSerialization 类。这就是为什么有很多错误。您能告诉我您在项目中使用的 JSON 库的名称吗?
  • SwiftyJson 是你需要的吗?
猜你喜欢
  • 2016-12-14
  • 1970-01-01
  • 2017-12-13
  • 2018-02-18
  • 2015-02-06
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多