0

我创建了一个子类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,变化:接受编码,用户代理])

4

0 回答 0