在后台执行功能(不冻结UI)

时间:2016-11-12 21:44:08

标签: swift xcode

我有6个功能。我想在后台执行这些函数中的3个(异步?),在Xcode for Swift 2中执行。你能帮助我,如何在没有"冻结"的情况下执行这3个函数。在用户界面?非常感谢你!

1 个答案:

答案 0 :(得分:0)

马丁·R的评论很有见,你应该阅读Apple的concurrency programming guide。但是这里有一种方法可供您使用:

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

(另外,考虑最坏的情况。缓慢的功能可以永远停止吗?如果用户想要在慢速功能完成之前退出怎么办?)