Swiftで別スレッド処理をする

Java/AndroidでいうところのThread-runに相当するやつをiOSのSwiftでやってみた。

Androidも同じですが重い処理をUIスレッドでやると一瞬フリーズしたりカクカクしたりするので、少しでも処理に時間がかかるものはバックグラウンドで処理して、終わったらメインスレッド(UIスレッド)に通知しましょうというというやつです。

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

Tue, 16 Dec 2014 10:54:01 +0000   |   Category:iOS

関連記事

About Me

kimihiro-n

Androidアプリを中心にいろいろアプリ作ってます。
T N G

Products

放課後アプリ部
放課後アプリ部
個人アプリ開発者のための集客プラットフォーム作りました。 AndroidやiOSアプリのダウンロード数増加を無料で手伝います!

最速のJSON可視化・解析ツール
JSONを使った開発をスムーズにするためのツールです。 特定の値までのパスを簡単に取れます。
過去に作ったiOSアプリ
明日から本気出すタスク管理 for iOS
過去に作ったAndroidアプリ
明日から本気出すタスク管理 for Android Nagareboshi taplight
Others..

Search Articles