如何在Swift 2中获取Alamofire.request()。responseJSON的结果值?

埃德加·乔治

我对Swift 2的新版本Alamofire有疑问

Alamofire.request(.POST, urlString, parameters: parameters as? [String : AnyObject])
        .responseJSON { (request, response, result) -> Void in
            let dico = result as? NSDictionary
            for (index, value) in dico! {
                print("index : \(index)     value : \(value)")
            }
    }

在本节中,我想将结果投射到NSDictionary中。但是当我编译并设置一个断点时,调试器说dico为零。如果我使用debugDescription打印结果,则它不是nil,并且包含我所期望的结果。如何转换Result变量?

哈维尔·卡迪斯

公认的答案很有效,但是随着Alamofire 3.0.0的引入,一些重大更改影响了此实现。
迁移指南有进一步的解释,但我会强调与实际的解决方案的人。

  • 响应
    所有响应序列化器(响应除外)都返回通用的响应结构。

  • 响应类型
    结果类型已重新设计为不存储NSData的双泛型类型。在这种.Failure情况下。

还应考虑到Alamofire将任何已完成的请求视为成功,无论响应的内容如何。因此,您需要先打上“ a”.validate()才能.responseJSON().Failure案件。在此处了解更多信息

更新的代码:

let url = "http://api.myawesomeapp.com"
Alamofire.request(.GET, url).validate().responseJSON { response in
    switch response.result {
    case .Success(let data):
        let json = JSON(data)
        let name = json["name"].stringValue
        print(name)
    case .Failure(let error):
        print("Request failed with error: \(error)")
    }
}

以供参考:

  • Xcode 7.3(Swift 2.2)
  • Alamofire 3.3.1
  • SwiftyJSON 2.3.3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何在StringPattern值birdantantcatbirdcat中获取String结果

如何在Swift中从数组中删除给定值的元素

如何在swift5和Alamofire 5 Beta版本中获取和保存响应?

KVO:如何在Swift中的watchValue(forKeyPath:...)中获取旧值/新值?

Alamofire 2,如何获取NSError?

如何在Swift 3中处理组等待结果

如何在Swift 3中从字典中检索值

如何在Swift中获取元组数组的最大Double值?

如何在Swift中的Firebase中写入nil值?

如何在Firestore(Swift)中访问返回查询的结果?

如何在Swift 4中从WKWebView获取cookie值?

Swift:Alamofire类型“ Self”(请求)的值没有成员“ responseJSON”扩展

如何在Swift 5结果中处理空响应

如何在Swift中附加Dictionary值

如何在Swift / iOS中解析Json并获取所需的值?

AlamoFire:如何获取responseJSON值

如何在Swift中迭代Zip2产生的值

如何在Swift中访问此NSDictionary中的值?

如何在Swift中打印可选值?

如何在Swift中处理NSUserDefaults中的非可选值

如何在Swift中获取C指针的原始值?

如何从结果值中获取原始值

从 JavaScript 结果中获取 responseJson

如何在 swift 4.0 中获取 firebase-realtime-database 中的特定值

如何在 Swift 中重置滑块值?

如何在swift 5中从数组字典中获取所有“标题”值

如何在 SWIFT 中处理 JSON 中的空值

如何在swift 5中仅获取选定行的CoreData结果?

如何在结果中获取 XMLHttpRequest 的属性值