Swiftでマルチスレッド

最近趣味でSwiftをかじり始めたnacikaです。

QiitaなどでSwiftについてのTipsが最近頻繁に挙げられてますが、スレッドができないみたいな内容がちらほら書かれていたので心配になっていたのですが、案の定できました。

というかSwiftだとしても別にココアフレームワーク一式が使えなくなるわけではなく、フレームワークを使うためのインターフェースがちょっと変わったくらいなんですね。

ClipBee(仮)というクリップボード履歴アプリをSwiftでおためし開発中ですが、そこで今回下記のようなソースコードを書いて取り入れようとしてます。

 /// クリップボードの監視を行う //------------------------------------------------------------------------------- func clipboardCaptureStart() -> Bool { /// デバッグ //------------------------------------------------------------------------------- println("クリップボードの監視を開始しました") /// スレッド作成 //------------------------------------------------------------------------------- var nst = NSThread(target:self, selector:"clipboardWatcher", object:nil) nst.start() return true } /// クリップボード監視処理 //------------------------------------------------------------------------------- func clipboardWatcher() { println("スレッドが起動しました") while(true) { println("スレッドループ処理中です") NSThread.sleepForTimeInterval(1.0) } }

別にNSTimerでいいんじゃないか・・と思うかもしれませんが、今回はとりあえずスレッドを使ってみることにしました。