2016-11-12 6 views
-2

私は6つの機能を持っています。 Xcode for Swift 2のバックグラウンドで(非同期?)これら3つの機能を実行したいと思います。UIで「フリーズ」せずにこの3つの機能をどのように実行できますか?どうもありがとうございます!バックグラウンドで機能を実行する(UIをフリーズせずに)

+2

Appleの[同時実行プログラミングガイド](https://で開発。 apple/library/content/documentation/General/Conceptual/ConcurrencyProgrammingGuide /Introduction/Introduction.html)が良いスタートになるかもしれません... –

+1

Swift 3での発送はもっと良いです。あなたは本当にスイフト2をもう使用してはいけません。 – Alexander

答えて

0

Martin Rのコメントは、Appleのconcurrency programming guideを読んでください。ただし、使用する方法は次のとおりです。

let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0) 
dispatch_async(queue) { 
    doSomethingReallySlowAndTedious() 
} 

注意してください。並行処理コードをコピー&ペーストするだけで、コードにバグを導入することは特に簡単です。それぞれの機能とパラメーターが何をしているかを確認してください。

(また、最悪の場合を考慮して、低速の機能は永遠にはまり込むことができ、ユーザが遅い関数が完了する前に終了したい場合はどうすれば。??)

+0

Alexander Momchliovさんがあなたの質問に良いコメントを追加しました。 Swift 3には非同期の構文の方がはるかに優れているので、答えの例で使用したCのような呼び出しを使う必要はありません。 http://stackoverflow.com/questions/37805885/how-to-create-dispatch-queue-in-swift-3/37806522には良い議論があります – jjs

関連する問題