22
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swift2.2になって非推奨になった文法と推奨コードまとめ

Last updated at Posted at 2016-03-25

この記事の目的

先日新しくiOS9.3とXcode7.3がリリースされSwiftはver.2.2となりました。この過程で非推奨になったコードがあり、既存のプロジェクトに関しては警告から自動で置換できますが、これから書くコードでいちいち書き直すのは面倒だと思うので備忘録的な感じで非推奨文法と推奨される書き方をまとめてみます。

といっても既存のコードで書いたことのあるものしかわからないのでまた新しいものがあれば随時更新します。

インクリメント・デクリメント

Swiftにはこれまで基礎となっているC系言語の潮流にのってnumber++などのインクリメント・デクリメントがありました。しかしこれがSwift3で廃止されることが決定されたためSwift2.2から非推奨コードになっています。かわりにnumber+=1などを使いましょう。
またこれに伴ってC/C++やJavaなどに慣れている人には馴染み深いfor文のfor var i = 0; i < n; i++という文法ももちろん非推奨となっています。i++i+=1とすればもちろんいいのですがSwift2.2ではこの書き方が良くないということでSwiftならではのfor i in 0 ..< nという書き方を採用することが推奨されています。

selectorなど

Swift2.2で新文法として#selectorなどが導入されています。これにともなって"function:"のようなObjective-Cから継承された文法が非推奨となり代わりに#selector(function(_:))という書き方が推奨になりました。
ようはちゃんと普通のメソッドの形で書けるようになったということですね、これはわかりやすい気がする。

AnyObjectについて

非推奨ではなくこちらはエラーが出るものですがvar array = [AnyObject]()などのように宣言した配列に配列をaddしていったものの一番の子要素にアクセスする時今まではarray[0][0]でよかったのですがSwift2.2から(array[0] as! NSArray)[0]などのように明示的にキャストしなければいけなくなったようです。おそらくAnyObjectが配列以外の場合も明示的にキャストする必要があると思われます。

22
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?