我创建了一个子类AFHTTPSessionManager
:
class TBNetworkClient: AFHTTPSessionManager {
func wordsWithCompletionBlock(completionBlock: TBErrorHandler) {
queryType = .Words
GET("words", parameters: nil, progress: { progress in
print("----------") //this is not called at all, why?
}, success: { sessionDataTask, response in
completionBlock(nil) //success is called
}) { sessionDataTask, error in
completionBlock(error)
}
}
}
标记线根本没有被调用,为什么?
这是源代码中上述方法的定义:
public func GET(URLString: String, parameters: AnyObject?, progress downloadProgress: ((NSProgress) -> Void)?, success: ((NSURLSessionDataTask, AnyObject?) -> Void)?, failure: ((NSURLSessionDataTask?, NSError) -> Void)?) -> NSURLSessionDataTask?
还有一个说明:
@param progress 更新下载进度时要执行的块对象。请注意,此块是在会话队列上调用的,而不是在主队列上。
当我打印print((sessionDataTask.response as? NSHTTPURLResponse)?.allHeaderFields)
输出如下:
可选([服务器:Apache,连接:保持活动,内容类型:文本/html,日期:星期五,2016 年 1 月 8 日 08:58:18 GMT,内容编码:gzip,保持活动:超时 = 1,最大值=100,内容长度:5663,变化:接受编码,用户代理])