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 运行时错误