Swift 上的 AFNetworking

Posted

技术标签:

【中文标题】Swift 上的 AFNetworking【英文标题】:AFNetworking on Swift 【发布时间】: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 【参考方案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)")
            
    

【讨论】:

以上是关于Swift 上的 AFNetworking的主要内容,如果未能解决你的问题,请参考以下文章

macOS 上的 swift: AVAudioPlayer 立即停止

UICollectionViewCell 上的奇怪边框 - Swift

Swift 3 上的 NSLocalizedString 运行时错误

如何更改圆形按钮上的边框颜色(Swift)

你如何使情节提要上的 UIImageView 可点击(swift)

NSManagedObject 上的 Swift 扩展