Swift可选绑定仍然具有空数据

时间:2016-04-01 11:24:05

标签: json swift alamofire

我已经在我的项目中为Alamofire包添加了一些额外的功能,并且出于某种原因,在这个可选绑定中,它会进入If语句,而不是#34;错误"密钥存在与否存在于json中。关于我做错了什么想法?

let JSON = try NSJSONSerialization.JSONObjectWithData(validData, options: options)

if let error = JSON["error"] {
    print(error!)
    return .ServerError(error as! String)
}

当没有错误时,打印失败并出现"致命错误:在解开可选值时意外发现nil"

2 个答案:

答案 0 :(得分:2)

您可以尝试添加as? String,这有助于可选的解包,如果字符串不存在,则不会在if语句中运行:

let JSON = try NSJSONSerialization.JSONObjectWithData(validData, options: options)

if let error = JSON["error"] as? String {
    print(error)
    return .ServerError(error)
}

答案 1 :(得分:2)

问题是<section>Section A</section> <section class="special">Section B</section> <section class="">Section C</section>会返回JSONObjectWithData 在这种情况下,您必须将类型转换为适合获得可靠结果的类型AnyObject

Dictionary