Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 快速服务呼叫、处理响应_Swift - Fatal编程技术网

Swift 快速服务呼叫、处理响应

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

我正在使用swift 4.2编写iOS应用程序。我正在给注销用户打服务电话。 我需要知道在哪里使用主线程(DispatchQueue.main.async)。 这是我的密码:

    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中。谢谢你的回答!