このページを正しく表示するにはJavascriptを有効にしてください。
Swiftで別スレッド処理をする
Java/AndroidでいうところのThread-runに相当するやつをiOSのSwiftでやってみた。
Androidも同じですが重い処理をUIスレッドでやると一瞬フリーズしたりカクカクしたりするので、少しでも処理に時間がかかるものはバックグラウンドで処理して、終わったらメインスレッド(UIスレッド)に通知しましょうというというやつです。
```swift
let qualityOfServiceClass = DISPATCH_QUEUE_PRIORITY_DEFAULT
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
// Backgroundで行いたい重い処理はここ
dispatch_async(dispatch_get_main_queue(), {
// 処理が終わった後UIスレッドでやりたいことはここ
})
})
```
多分これでいいはず。
AndroidのAsyncTaskみたいに高機能なクラスもきっとSwift/Objective-Cにあると思いますが、とりあえず今回はお手軽なBackgroundQueueを試してみました。
参考: [http://stackoverflow.com/questions/24056205/how-to-use-background-thread-in-swift](http://stackoverflow.com/questions/24056205/how-to-use-background-thread-in-swift)