ios - 成功和失败 block 都没有被执行

标签 ios swift afnetworking

这是我的代码

  let url = URL(string: "http://demo6680989.mockable.io/getData")
    let manager = AFHTTPSessionManager()

    manager.get((url?.absoluteString)!, parameters: nil, progress: nil, success: {
        (dataTask, responseObj) in

        if let dict : NSDictionary = responseObj as? NSDictionary {

            //print("Response: \(dict)")
            AuditListParser().parseAudit(jsonData: dict)
        }
    }, failure: {
        (dataTask, error) in
        print(error.localizedDescription)
    })

当我在浏览器中使用这个网址时,它给了我一些数据,但是当我执行上面的代码时,它既不会进入成功 block ,也不会进入失败 block 。 第一次运行正常并打印数据。我不知道突然发生了什么,当我再次运行时,这个问题出现了

请帮助我

最佳答案

正常情况下,AFHTTPSessionManagerGET:(NSString *)URLString 参数:(NSDictionary *)参数 成功:(void ( ^ ) ( NSURLSessionDataTask *task , id responseObject ))成功 失败:(void ( ^ ) ( NSURLSessionDataTask *task , NSError *error ))failure 方法返回 NSURLSessionDataTask 对象。因此,您应该以某种方式启动该任务,以便它在成功或失败 block 中返回。只需获取从 get() 方法返回的对象,然后调用该对象的 resume() 方法即可。祝你好运!

编辑

像这样:

let task = manager.get((url?.absoluteString)!, parameters: nil, progress: nil, success: {
        (dataTask, responseObj) in

        if let dict : NSDictionary = responseObj as? NSDictionary {

            //print("Response: \(dict)")
            AuditListParser().parseAudit(jsonData: dict)
        }
    }, failure: {
        (dataTask, error) in
        print(error.localizedDescription)
    })
task.resume()

关于ios - 成功和失败 block 都没有被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42082609/

相关文章:

ios - 在 iOS 中使用 firebase 实现通知时出现问题

ios - 如何在 Swift 中屏蔽 UIButton?

swift - 无法在 Ubuntu 14.04 上用 Swift 执行命令

ios - AFNetworking - 数据已加载,但出现错误 504

ios - UImage 不显示 iphone 4/5 版本

ios - 在表格 View 编辑模式下修改重新排序控件图标

ios - QTWebView真的可以通过Apple App Store检查吗?

ios - 将JSON映射为数组或对象

ios - AFHTTPSessionManager 使用基于 SOAP 的服务

validation - Podspec 无法通过验证,但没有记录错误