Swift 快速服务呼叫、处理响应
我正在使用swift 4.2编写iOS应用程序。我正在给注销用户打服务电话。 我需要知道在哪里使用主线程(DispatchQueue.main.async)。 这是我的密码:Swift 快速服务呼叫、处理响应,swift,Swift,我正在使用swift 4.2编写iOS应用程序。我正在给注销用户打服务电话。 我需要知道在哪里使用主线程(DispatchQueue.main.async)。 这是我的密码: private func handleLogoutCellTap() { logoutUseCase?.logout() { [weak self] (result) in guard let self = self else { return } s
private func handleLogoutCellTap() {
logoutUseCase?.logout() { [weak self] (result) in
guard let self = self else { return }
switch result {
case let (.success(didLogout)):
didLogout ? self.handleSuccessfullLogout() : self.handleLogoutError(with: nil)
case let (.failure(error)):
self.handleLogoutError(with: error)
}
}
}
logoutUseCase?.logout()进行服务调用并返回@escaping completion。我应该在整个handleLogoutCellTap()函数上使用DispatchQueue.main.async,还是仅在处理段中使用?将控件移动到
主线程
接收到注销响应后更新UI的任何位置
如果handleSuccessfullLogout()
和handleLogoutError(with:)
方法执行任何UI操作,则可以将整个switch语句
嵌入DispatchQueue.main.async
,即
private func handleLogoutCellTap() {
logoutUseCase?.logout() { [weak self] (result) in
guard let self = self else { return }
DispatchQueue.main.async { //here.....
switch result {
//rest of the code....
}
}
}
}
在收到注销
的响应后,将控件移动到主线程
中更新UI的任何位置
如果handleSuccessfullLogout()
和handleLogoutError(with:)
方法执行任何UI操作,则可以将整个switch语句
嵌入DispatchQueue.main.async
,即
private func handleLogoutCellTap() {
logoutUseCase?.logout() { [weak self] (result) in
guard let self = self else { return }
DispatchQueue.main.async { //here.....
switch result {
//rest of the code....
}
}
}
}
是的,我在收到响应后在UI上执行一些操作,并将整个switch语句放在DispatchQueue.main.async中。谢谢你的回答!是的,我在收到响应后在UI上执行一些操作,并将整个switch语句放在DispatchQueue.main.async中。谢谢你的回答!