如何在主队列暂停时执行必须在主队列上运行的函数?

时间:2017-09-22 23:54:06

标签: ios swift grand-central-dispatch

以下功能检查受保护数据是否可用。

func isProtectedDataAvailable(_ completion: ((_ isProtectedDataAvailable: Bool)->Void)?) {

    DispatchQueue.main.async {
        completion?(UIApplication.shared.isProtectedDataAvailable)
    }
}

如何更改函数,以便即使主线程在以下设置中暂停时也可以调用它:

let dispatch = DispatchGroup()

dispatch.enter()

isProtectedDataAvailable { isProtectedDataAvailable in
    //...
    dispatch.leave()
}

dispatch.wait()

上面的wait()将暂停主队列,永远不会调用完成处理程序。

0 个答案:

没有答案