Swift 在后台执行函数(不冻结UI)

Swift 在后台执行函数(不冻结UI),swift,xcode,Swift,Xcode,我有6个功能。我想在Swift 2的Xcode中在后台(异步?)执行其中的3个函数。你能帮助我吗,我如何在UI没有“冻结”的情况下执行这3个功能?非常感谢你 Martin R的评论恰到好处,你应该看看苹果的评论。但这里有一种方法可以使用: let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0) dispatch_async(queue) { doSomethingReallySlowAndT

我有6个功能。我想在Swift 2的Xcode中在后台(异步?)执行其中的3个函数。你能帮助我吗,我如何在UI没有“冻结”的情况下执行这3个功能?非常感谢你

Martin R的评论恰到好处,你应该看看苹果的评论。但这里有一种方法可以使用:

let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)
dispatch_async(queue) {
    doSomethingReallySlowAndTedious()
}
不过要小心。通过复制粘贴并发代码,特别容易在代码中引入bug。确保您知道每个函数和参数的作用


(同样,考虑最坏的情况。慢功能能永远卡住吗?如果用户想要在慢功能完成之前退出?)[P/P>苹果可能是一个好的开始……SWIFT 3中的调度要好得多。你真的不应该再使用Swift 2了。Alexander Momchliov为你的问题添加了一条很好的评论。Swift 3现在对于异步的东西有了更好的语法,所以您不必使用我在我的答案示例中使用的类似C的调用。会议上有一些很好的讨论