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

関連記事

I20150805-182005.jpg

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

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

記事を読む

20160309-131202.jpg

ゆるい入門書では物足りない人向けの濃い内容!「本気ではじめるiPhoneアプリ作り」

ヤフー株式会社のiOSエンジニアである西 磨翁(にし まお)さんより、「本気ではじめるiPhon

記事を読む

20140724-103334.jpg

iPhoneアプリ開発にオススメの本10選(2014年7月版)

@akio0911です。2013年12月に「レベル・目的別!iPhoneアプリ開発おすすめ本

記事を読む

20150410-122409.jpg

複数バージョンのXcodeを共存してMacにインストールする方法

いよいよXcode 6.3が正式にリリースされましたね。 今回は複数バージョンのXco

記事を読む

I20160217-170931.jpg

2016年2月15日以降、Missing iOS Distribution Signing identity for XXX というエラーが出た場合の解決方法

2016年2月15日以降、AppStoreへの申請やipaファイルのエクスポートで「Missin

記事を読む

I20151201-120520.jpg

【Swift 2】switch内にてguardでbreakする

Swift 2のguard内ではreturnしないと文法エラーとなりますが、実はswitch

記事を読む

20150406-121104.jpg

【アプリ開発】選んだ色をUIColorの生成コードに変換できる「Developer Color Picker」

選んだ色をUIColorの生成コードに変換できる「Developer Color Picker」

記事を読む

20141119-114354.jpg

【iOSアプリ開発】隙間時間で読んで学ぶのにオススメな入門本「はじめてのSwiftプログラミング」

「はじめてのSwiftプログラミング」という入門書が手頃なサイズで、持ち歩いてスキマ時間で読んで

記事を読む

I20160118-223109.jpg

Swift 2でシングルトンを初期化・呼び出しする方法

Swift 2でシングルトンを実装する方法について解説したいと思います! (※「シングルトンを

記事を読む

20140916-130550

Swiftの列挙型、switch文、網羅性チェックが素晴らしい!

アップルの新プログラミング言語「Swift」をちょっとずついじってるんですが、列挙型とswitch文

記事を読む

PAGE TOP ↑