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 调用数据并在 Viewcontroller 上传入 customcell。错误:在展开可选值时意外发现 nil