我想知道如何消除self. DispatchQueue作为一个好的实践,我们应该self只在init()
func loadAllClasses() {
DispatchQueue.global(qos: .background).async {
self.classVM.fetchAllClasses(id: id, completion: { (classes, error) in
DispatchQueue.main.async {
if error != nil {
self.showAlert(message: "try again", title: "Error")
}
if let classes = classes {
self.classesList = classes
self.classesCollectionView.reloadData()
}
}
})
}
}
Run Code Online (Sandbox Code Playgroud) 我的情况很奇怪。我的服务器当前已关闭并收到 503 http 状态代码。根据给定的代码如下,代码进入 if 条件,但是当我将调试点置于let error = self?.decodeErrorMessage(data: data, statusCode: response.statusCode). 然后它从 if 条件跳转并执行 else if 条件。
ClientViewModel.swift
let networkRequest = CustomNetworkRequest(headers: headers, httpMethod: .get, httpBody: nil, parameters: nil, url: url)
let customNetworker = CustomNetworker(urlSession: URLSession(configuration: config))
customNetworker.dataRequest(networkRequest, successHandler: {[weak self] data in
self?.parseData(data)
completion(nil)
}, failureHandler: { [weak self] error in
completion(error)
})
Run Code Online (Sandbox Code Playgroud)
CustomNetworker.swift
final class CustomNetworker {
private let urlSession: URLSession
public init(urlSession: URLSession) {
self.urlSession = urlSession
}
func dataRequest(input parameters here) {
let …Run Code Online (Sandbox Code Playgroud)