Swift 2.2の変更点をまとめてみた

公開日: : 最終更新日:2016/04/16 iPhoneアプリ開発

20160411-122213.jpg

2016年3月22日、Xcode 7.3と共にSwift 2.2が正式にリリースされました。

Swift 2.2における変更点についてまとめておきたいと思います。

    

スポンサード リンク

タプルを比較できるようになった(ただし条件付き)

20160411-131400.jpg

タプル同士を比較できるようになりました。以下の条件を満たす必要があります。

  • タプルの要素数が同じであること
  • 個々の要素がEquatableであること(==や!=の場合)
  • 個々の要素がComparableであること(<や>などの場合)

また、タプルの要素数は6以下である必要もあります。

    

#selector

20160411-134401.jpg

Selector型の指定は今まで文字列リテラルで行ってきましたが、Swift 2.2では#selectorが導入され、存在しないメソッドを指定するとコンパイルエラーが出てくれるようになりました。

    

Cスタイルのforループ

20160411-125842.jpg

「for 初期化; 比較; インクリメント {}」のようなCスタイルのforループは、Swift 2.2では警告となります。

C-style for statement is deprecated and will be removed in a future version of Swift

かわりにfor … inなどを使いましょう。

ちなみにSwift 3.0では削除される予定です。

    

++演算子、–演算子

20160411-130215.jpg

a++ と ++a で挙動が異なるなど扱いが難しい演算子ということもあり、Swift 2.2では以下のような警告となります。

‘++’ is deprecated: it will removed in Swift 3

Swift 3.0で削除される予定です。早めにa += 1 などに書き換えましょう。

    

関数の引数のvar

20160411-130744.jpg

Swiftにおいて関数の引数はデフォルトでlet扱いであり、varキーワードを指定することで変更もできましたが、Swift 2.2でvarを使うと警告となります。

‘var’ parameters are deprecated and will be removed in Swift 3

Swift 3では削除される予定です。

    

Raw typeがIntなenumに@objcを付けられる

20160411-131058.jpg

Raw typeがIntなenumについては、@objcを付けることでObjective-Cから見えるようになります。

    

引数ラベルに予約語が使える

20160411-132613.jpg

関数の引数ラベルとして、「inout」「var」「let」を除くほとんどの予約語(forやinなど)が使えるようになりました。

関数やメソッドをより分かりやすくするのに役立ちそうです。

    

#file, #line, #column, #function

20160411-133126.jpg

Swift 2.1までは

  • __FILE__
  • __LINE__
  • __COLUMN__
  • __FUNCTION__

が利用可能でしたが、Swift 2.2では警告となります。

20160411-133453.jpg

__FILE__ is deprecated and will be removed in Swift 3, please use #file
__LINE__ is deprecated and will be removed in Swift 3, please use #file
__COLUMN__ is deprecated and will be removed in Swift 3, please use #file
__FUNCTION__ is deprecated and will be removed in Swift 3, please use #file

かわりに以下の4つが新設されました。

  • #file
  • #line
  • #column
  • #function

    

associatedtypeキーワード

20160411-133826.jpg

プロトコルのassociated typeを指定する時、今までどおりtypealiasを使うと以下の様な警告が出来るようになりました。

Use of ‘typealias’ to declare associated types is deprecated; use ‘associatedtype’ instead

かわりに新設されたassociatedtypeキーワードを使いましょう。

20160411-134006.jpg

    

引数ラベルまで指定して関数を参照できる

20160411-135707.jpg

引数ラベルのみが異なる複数の関数があっても、引数ラベルを利用して個々の関数を参照できるようになりました。

    

Swiftのバージョンを指定して分岐

20160411-140019.jpg

Swiftのバージョンを指定して分岐させることができるようになりました。

当てはまらないほうに関してはコンパイラによって処理されないので、エラーなどは発生しません。

    

@akio0911はこう思った。

タプルが比較できるようになっていたり、#selectorでメソッドの存在チェックをコンパイル時に行ってくれるようになったのが個人的には嬉しいですヽ(・∀・)ノ

↓ Kindle版がリフローで出たので、iPhoneやiPadで少しずつ読み進められて便利です。

    

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

follow us in feedly

Feedlyで最新記事を購読

Twitterで更新情報をゲット!

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

関連記事

I20160417-171311.jpg

Xcodeのブレークポイントで変数の中身を通知センターに表示してみる

Xcodeのブレークポイントの機能を使って、ブレークポイントを通過した時点での変数の中身を通知セ

記事を読む

20141031-150402.jpg

アップルのベータテストサービス「TestFlight」が正式公開

アップルが先週の木曜、ベータテストサービス「TestFlight」を正式に公開しました。 Te

記事を読む

20150106-142403.jpg

Auto Layoutをコードで記述してビューを等間隔に並べる【Swift】

Auto Layoutをコードで記述して、ビューを等間隔に並べる方法について紹介します。ちなみに

記事を読む

I20150722-185359.jpg

【書籍】12のパターンで学ぶ本「iOSアプリ開発 AutoLayout徹底攻略」

     Auto Layoutの使い方について解説されている本「iOSアプリ開発 A

記事を読む

I20151031-175009.jpg

初心者にオススメの本!Swiftではじめる iPhoneアプリ開発の教科書【Swift 2&Xcode 7対応】

     Xcode 7とSwift 2に対応したアプリ開発の入門書籍「Swiftでは

記事を読む

iPhoneアプリ開発の初心者にオススメな本はこれだ!iOS 7とXcode 5に対応!

僕が講師をしている初心者向けのiPhoneアプリ開発講座「アプリクリエイター道場」でも参考書とし

記事を読む

I20150714-010114.jpg

【Swift】Objective-Cで書いたクラスをメソッド単位で少しずつSwiftへ移行する方法

Objective-Cで作った既存のアプリをSwiftで書き直したいと思っているのですが、一

記事を読む

20150525-224340.jpg

【Swift】クロージャをメソッドや関数の引数として渡す方法

Swiftでメソッドの引数としてクロージャを渡す方法について解説したいと思います。     

記事を読む

I20150802-085831.jpg

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

Swift 1.2で、touchesBegan・touchesMoved・touchesCanc

記事を読む

I20160210-140020.jpg

【Xcode】モーダル表示で遷移先へ値を渡す時のハマりポイント

モーダル表示で遷移先の画面へ値を渡す際、最初はハマりやすいポイントについて解説したいと思いま

記事を読む

20170423-182541
良肌研究室のフェイスウォッシュとオールインワンジェルを使ってみた

株式会社ブラシナさんから、良肌研究室の商品をご提供頂いたので、

I20170228-002742.jpg
約3ヶ月で体脂肪率を6.2%も落とせたキッカケについて

(右上の赤枠内がダイエット開始前、左下の赤枠内が3ヶ月後の数値

I20161224-174949.jpg
「季節の野菜を直接配送!季節のスムージー」を買ってみた

「FiNCモール」で、「季節の野菜を直接配送!季節のスムージー」を

I20161002-152537.jpg
【メンズネイル】東京・新宿のネイルサロンでマットネイルしてもらった

2016年7月18日、東京・新宿のメンズOKなネイルサロン「Tot

I20160925-163452.jpg
タブバーアイコン非選択時の色を変更する方法【iOS 10】

UITabBarControllerで、タブバーアイコン非選択時の

→もっと見る

PAGE TOP ↑