【问题标题】:AFNetworking on SwiftSwift 上的 AFNetworking
【发布时间】:2015-06-09 18:41:17
【问题描述】:

如何在 AFNetworking、Swift 中获取 JSON 数据?

代码 AFNetworking:

    let manager = AFHTTPRequestOperationManager()
    manager.responseSerializer = AFHTTPResponseSerializer()

    manager.POST("http://api.address",
    parameters: nil,
        success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in

            println("Object: " + responseObject.description)

            if let data = responseObject as? Dictionary<String, AnyObject> {
                println("JSON: " + "\(data)")
            } else {
                println("Error JSON")
            }

    },
    failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
        println("Error: " + error.localizedDescription)
    })

结果:

对象:

错误 JSON

【问题讨论】:

  • 如果您使用的是 Swift,我建议您使用 Alamofire 而不是桥接 AFNetworking。找到它:github.com/Alamofire/Alamofire
  • 1) 对于 Swift,我宁愿使用 github.com/Alamofire/Alamofire。它与 AFNetworking 几乎相同,但由同一作者用 Swift 编写。 2) manager.responseSerializer = [AFJSONResponseSerializer 序列化器];//Obj-C代码
  • Alamofire 不支持 ios 7
  • @ZAV Alamofire 确实支持 ios 7,我在 Swift 中有我的应用程序,它使用 Alamofire 并且在 ios 7 上运行良好
  • 它支持IOS 7.0+。 Alamofire 的 chcek 自述文件。 github.com/Alamofire/Alamofire

标签: ios json swift afnetworking alamofire


【解决方案1】:

我在Alamofire中试了一下,可以成功转换为Dictionary对象。

    Alamofire.request(.POST, "http://api.address", parameters: nil, encoding:.JSON).responseJSON
        { response in switch response.result {
        case .Success(let JSON):

            let data = JSON as! Dictionary<String, AnyObject>


        case .Failure(let error):
            print("Request failed with error: \(error)")
            }
    }

【讨论】:

    猜你喜欢
    • 2014-07-26
    • 2017-10-27
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多