有以下问题:
***由于未捕获的异常“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()