有以下问题:

***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSURLSessionDataTask响应]:无法识别的选择器已发送到实例0x7fced8599e60”

这是从哪里来的:

GET("users/check_email", parameters: parameters, progress: nil, success: { sessionDataTask, response in

    //the line with error
    let statusCode = (sessionDataTask.response as? NSHTTPURLResponse)?.statusCode ?? 0

    completionBlock(self.queryType?.mockStatusCode ?? statusCode, nil)

    }) { sessionDataTask, error in

        completionBlock(nil, NSError(responseError: error))
}

当我尝试模拟响应时会发生这种情况。在代码的某个地方,我传递给success块:
var sessionDataTask = NSURLSessionDataTask()
success?(sessionDataTask, queryType?.mockResponse())

Sth的sessionDataTask错误。 NSURLSessionDataTask继承自具有NSURLSessionTask属性的response。不知道为什么会出现这个错误。

最佳答案

如果像下面那样声明模拟NSURLSessionDataTask,则响应为nil。

对象C:

NSURLSessionDataTask * sessionDataTask = [[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]] dataTaskWithURL:[NSURL URLWithString:@""]];
[sessionDataTask response];

迅速:
var sessionDataTask = NSURLSessionDataTask(NSURLSession(sessionWithConfiguration:NSURLSessionConfiguration.defaultSessionConfiguration()).dataTaskWithURL(NSURL(string: "")))
sessionDataTask.response()

10-06 13:37