Swift 1.2でtouchesBeganメソッドのNSSetがSetへ変更されました

公開日: : 最終更新日:2016/02/10 iPhoneアプリ開発

20150802-085831.jpg

Swift 1.2で、touchesBegan・touchesMoved・touchesCancelled・touchesEndedなどのメソッドが変更となりました。

Swift 1.2でSetが使えるようになったためです。

    

Swift 1.1までのtouchesBeganメソッド

Swift 1.1までのtouchesBegan・touchesMoved・touchesCancelled・touchesEndedメソッドは、以下のようになっていました。

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
}

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
}

override func touchesCancelled(touches: NSSet, withEvent event: UIEvent!) {
}

override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
}

    

Swift 1.2のtouchesBeganメソッド

Swift 1.2では以下のように、touchesのデータ型がNSSetからSet<Object>へ変更となっています。

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
}

override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
}

override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
}

override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
}

    

タッチ座標の取得方法

Swift 1.1では、例えば以下の様なコードでタッチ座標を取得します。

if let touch = touches.anyObject() as? UITouch {
    // do something
}

    

Swift 1.2では、例えば以下の様なコードでタッチ座標を取得します。

if let touch = touches.first as? UITouch {
    // do something
}

    

@akio0911はこう思った。

個人的には、Setなのにfirstというメソッドでデータを取得するのが違和感あります。Setには順番がないはずなので・・・。

あと、Swiftにおけるコードの書き方はどんどん変わっていきますね。Objective-CからSwiftへの移行は早めに行ったほうが、手間がかからなそうです。

    

    

関連記事

この記事が気に入ったら「いいね!」しよう

follow us in feedly

Feedlyで最新記事を購読

Twitterで更新情報をゲット!

LINEでご感想・ご要望お送りください!
(スマホでLINEを起動 > 友だち追加 > QRコード)

PAGE TOP ↑