Alamofire 平面错误:在展开可选值时意外发现 nil

Posted

技术标签:

【中文标题】Alamofire 平面错误:在展开可选值时意外发现 nil【英文标题】:Alamofire flat error: unexpectedly found nil while unwrapping an Optional value 【发布时间】:2016-02-14 08:30:13 【问题描述】:

我对 GET 方法 Alamofire 有一些问题。当我得到数据时出现错误:

EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0) 致命错误:在展开可选值时意外发现 nil

我做错了什么?我的代码:

        let URLString = "http://MyURLWebService...";
        Alamofire.request(.GET, URLString)
        .responseJSON  (response) in 
            print(response.request)  // original URL request
            print(response.response) // URL response
            print(response.data)     // server data
            print(response.result)   // result of response serialization

            if let JSON = response.result.value 
                print(JSON["Phones"] as! String)
                //print("JSON: \(JSON)")
            

    

【问题讨论】:

我的格式 REST API 数据:[Phones":"+1 (100) 111-22-33","Phones2":null] 【参考方案1】:

我认为JSON 对象没有以"Phones" 为名称的成员。所以最好使用 ? 而不是 !print(JSON["Phones"] as? String)

编辑:

您的 Json 字符串已损坏。 Phones 必须用双引号括起来。

像这样:

["Phones":"+1 (100) 111-22-33","Phones2":null]

【讨论】:

【参考方案2】:

这是工作:

            if let jsonResult = response.result.value 
                let Address = jsonResult[0]["Address"]
                let Phones = jsonResult[0]["Phones"]
                print("JSON:    Address: \(Address)")
                print("JSON: Phones: \(Phones)")
            

希望对大家有所帮助

【讨论】:

以上是关于Alamofire 平面错误:在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire:在展开可选值时意外发现 nil

使用 Alamofire 调用数据并在 Viewcontroller 上传入 customcell。错误:在展开可选值时意外发现 nil

展开可选值时意外发现 nil 错误

prepareForSegue 出错“”在展开可选值时意外发现 nil“”

XCode 8:在展开可选值时意外发现 nil

致命错误:在展开可选值时意外发现 nil - 为啥?