Swiftの公式本「The Swift Programming Language (Swift 2 Prerelease)」を参考に2.0の変更点を調べてみました。
全部は調べきれなかったので分かる範囲まで。
Swift2.0の変更点
Error Handling
他言語におけるtry-catch構文が追加されました。
エラーはErrorTypeプロトコルを使って作成します。
enum TestError: ErrorType { case A case B } do { throw TestError.A } catch { NSLog("AAA") }
Checking API Availablity
下のようにOSのバージョンによる分岐ができるようになりました。
if #available(iOS 9, OSX 10.10, *) { NSLog("OS9") } else { NSLog("OS8") }
guard statement
変数をチェックするguard
構文が追加されました。
elseとセットで使うもので、変数がnilの場合にブロックの中に入ります。
ブロック内ではreturnが必須で、returnしない場合Guard body may not fail through
と言われます。
let a: Int? = nil guard let value = a else { return true }
Protocol extensions
下のようにProtocolへのメソッド追加ができるようになりました。
これは機能のモジュール化がかなりはかどりますね!
ただし、extensionなので変数の定義はできません。
class MyClass: MyProtocol { func aaa() { print("A") } } protocol MyProtocol { func aaa() } extension MyProtocol { func bbb() { print("B") } } MyClass().aaa() MyClass().bbb()
- 作者: 荻原剛志
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/12/10
- メディア: 大型本
- この商品を含むブログ (2件) を見る