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コード)

関連記事

I20160525-233821.jpg

SwiftBondを使ってみた。observeやObservableの使い方など

Swiftバインディングフレームワークである「SwiftBond」を使ってみました!

記事を読む

20150522-105524.jpg

【書籍】初心者にオススメな本!「これからはじめる Apple Watchアプリ開発入門」

Apple Watchは買いましたか?使ってますか?アプリを作ってみたくはないですか? という

記事を読む

I20160212-000722.jpg

Swiftにおけるセレクタ(Selector)について調べてみた

NSTimerなどを使う際、引数に「Selector」という型があるのですが、これがSwiftで

記事を読む

20160509-200435

【Auto Layout】readableContentGuideを使わずに最大幅を定義する

iOS 9からUIViewにreadableContentGuideが追加されましたが、re

記事を読む

I20151126-170621.jpg

Swift 2のprintで改行しない方法

Swift 1時代はprintlnで改行あり、printで改行なしでしたが、Swift 2ではp

記事を読む

20150525-224340.jpg

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

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

記事を読む

I20151030-214417.jpg

【開発本】SpriteKitの入門書籍「iPhoneのゲームアプリをつくろう!」

SwiftとSpriteKitでiPhoneゲームアプリを開発するための入門書「iPhone

記事を読む

20160724-154909.jpg

デザインの素人がノンデザイナーズ・デザインブックを読んだら、デザインの原則が結構分かるようになった!

ずっとエンジニアとして働いてきてデザインに関してはまったくの素人な僕ですが、「ノンデザイナーズ・

記事を読む

I20160418-235604.jpg

XcodeのStoryboardで部品を選択しやすくする2つの方法

ストーリーボード上で部品が入り組んでくると選択しづらくなってきますが、そんな状況でも部品を選択し

記事を読む

I20150805-182005.jpg

Swiftにおける関数型のエッセンスを学ぶために「関数プログラミング実践入門」を読み始めた

Swiftの関数型言語的な特徴についての話を各所で見るようになりましたが、自分は関数型言語の

記事を読む

I20170521-225453.jpg
東京駅八重洲口の「羊肉酒場 悟大」で網焼きジンギスカンを頂きました!

ゆうせいさんと株式会社 大庄さんからご招待頂き、悟大withサッポ

I20170514-165235.jpg
iPhoneと連携できる体重体組成計「Withings Body Cardio」を使ってます

ジムに通い始めて体脂肪率が落ち始めたのをキッカケに、iPhoneと

I20170507-155440.jpg
【派手髪】ハーレイクイン風の髪色に染めてもらいました

2016年10月20日、ハーレイクイン風の髪色に染めてもらいました

I20170504-173110.jpg
【メンズネイル】東京・新宿のネイルサロンでターコイズのホログラムネイルしてもらった

ネイルネタが1年分くらい溜まっているので、ちょっとずつ書いていこう

I20170502-010117.jpg
SNUGGのライトニングケーブルが耐久性高し。8ヶ月使ってますが断線の気配なし!

iPhoneの充電&転送ケーブルであるLightningケーブルっ

→もっと見る

PAGE TOP ↑