Swift 1.2でtouchesBeganメソッドのNSSetがSetへ変更されました
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
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への移行は早めに行ったほうが、手間がかからなそうです。
関連記事
この記事が気に入ったら「いいね!」しよう
Twitterで更新情報をゲット!