URL 会话初始化问题
URL session initilazition issue
class URLSessionDataTask: URLSessionDataTask {
private let url: URL
private let data: Data
init(configuration: URLSessionConfiguration = .default, url: URL, data: Data, statusCode: Int, completion: @escaping ) {
self.data = data
self.url = url
}
func execute() {
let response = HTTPURLResponse(url: url, statusCode: statusCode, httpVersion: nil, headerFields: nil)
completion(data, response, nil)
}
我正在做一些测试,它正在运行,但我收到黄色错误,我该如何修复我的代码?请帮助我。
您收到此警告是因为 swift 自动调用已弃用的默认值 super.init()
。明确指定:
class MockURLSession: URLSession {
private let url: URL
private let data: Data
private let statusCode: Int
init(configuration: URLSessionConfiguration = .default, data: Data, statusCode: Int, url: URL = URL(string: "https:flicker.com")!) {
self.data = data
self.url = url
self.statusCode = statusCode
super.init(configuration: configuration)
}
}
子类初始化器必须在初始化所有子类属性后调用超类初始化器。
警告是由于编译器添加的隐式 super.init()
调用而产生的。您需要显式调用未弃用的初始化程序之一,例如 init(configuration:)
.
class MockURLSession: URLSession {
private let url: URL
private let data: Data
private let statusCode: Int
init(data: Data, statusCode: Int, url: URL = URL(string: "https:flicker.com")!) {
self.data = data
self.url = url
self.statusCode = statusCode
super.init(configuration: .default)
}
}
class URLSessionDataTask: URLSessionDataTask {
private let url: URL
private let data: Data
init(configuration: URLSessionConfiguration = .default, url: URL, data: Data, statusCode: Int, completion: @escaping ) {
self.data = data
self.url = url
}
func execute() {
let response = HTTPURLResponse(url: url, statusCode: statusCode, httpVersion: nil, headerFields: nil)
completion(data, response, nil)
}
我正在做一些测试,它正在运行,但我收到黄色错误,我该如何修复我的代码?请帮助我。
您收到此警告是因为 swift 自动调用已弃用的默认值 super.init()
。明确指定:
class MockURLSession: URLSession {
private let url: URL
private let data: Data
private let statusCode: Int
init(configuration: URLSessionConfiguration = .default, data: Data, statusCode: Int, url: URL = URL(string: "https:flicker.com")!) {
self.data = data
self.url = url
self.statusCode = statusCode
super.init(configuration: configuration)
}
}
子类初始化器必须在初始化所有子类属性后调用超类初始化器。
警告是由于编译器添加的隐式 super.init()
调用而产生的。您需要显式调用未弃用的初始化程序之一,例如 init(configuration:)
.
class MockURLSession: URLSession {
private let url: URL
private let data: Data
private let statusCode: Int
init(data: Data, statusCode: Int, url: URL = URL(string: "https:flicker.com")!) {
self.data = data
self.url = url
self.statusCode = statusCode
super.init(configuration: .default)
}
}