这是我的代码
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 。 第一次运行正常并打印数据。我不知道突然发生了什么,当我再次运行时,这个问题出现了
请帮助我
最佳答案
正常情况下,AFHTTPSessionManager
的 GET:(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/