如何管理具有多个依赖项的警报框?

问题描述 投票:0回答:1

我有两个并行且独立的函数,名为

function a() ->Bool & function b() ->Bool
现在,如果此功能中的任何一个失败,我想显示警报框

注意:我不能将一个函数放入另一个函数中。这两个功能都需要大约 5 秒才能完成

尝试过的方法:在 a() 和 b() 内创建了两个名为

var aCompleted: Bool var bCompleted
的标志 &

func showAlert() {
if aCompleted && bCompleted {
 // show UIAlertController....
}

我正在寻找更好的方法,请指导。

ios swift
1个回答
0
投票

最简单的方法是使用调度组。

let dispatchGroup = DispatchGroup()
    var aSuccess = false
    var bSuccess = false

    dispatchGroup.enter()
    DispatchQueue.global().async {
        aSuccess = self.a()
        dispatchGroup.leave()
    }

    dispatchGroup.enter()
    DispatchQueue.global().async {
        bSuccess = self.b()
        dispatchGroup.leave()
    }

    dispatchGroup.notify(queue: .main) {
        if !aSuccess || !bSuccess {
            self.showAlert()
        }
    }

.notify 函数仅在两个函数都执行完毕后才会被调用。

© www.soinside.com 2019 - 2024. All rights reserved.