ios - 从后台线程返回函数

标签 ios swift multithreading

我的函数执行需要时间

    func hasValidValues() -> Bool{
        let leftValue = Double(leftTextValue) ?? 0
        let rightValue = Double(rightTextValue) ?? 0
        switch self.stackViewType {
            let leftValid = self.hasValidValue(min: targetMin, max: targetMax, value: CGFloat(leftValue), unitConversation: true)
            let rightValid = self.hasValidValue(min: 0, max: plusMinusLimit, value: CGFloat(rightValue), unitConversation: true)
            return leftValid && rightValid
}

现在我需要在后台线程中执行它,并希望返回以便 UI 线程可以访问它并且我可以在另一个 Controller 中更改 UI。

谁能帮我解决这个问题?

最佳答案

使用DispatchQueue:

DispatchQueue.global().async {
    let result = self.hasValidChanges()
    DispatchQueue.main.async {
        // Use result
    }
}

关于ios - 从后台线程返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52663020/

相关文章:

json - Swift4 从 '(_, _, _) throws -> ()' 类型的抛出函数到非抛出函数类型的无效转换 '(Data?, URLResponse?, Error?)

swift - 无法将类型 'String' 的值转换为预期的参数类型

ios - 如何在 xcode 中使 5 个按钮的水平宽度相同

java - 更新多个文本框 Java GUI

java - 在里面调用新线程是构造函数

python - 应用程序引擎上的线程安全客户端库(python)

ios - 用于保存到核心数据的 NSPersistentContainer 并发

iOS 阻止功能被调用两次

ios - 在 Nitrous.io 上修复 Rails 和服务器

Objective-C修饰符问题