swift3になるにあたりの変更される記法

Xcodeで開発していたら何やら、警告が…

swift3から削除される記法を警告してくれていました。swift3になると完全に使えなくなるので、リファクタリングをしないといけません。


関数の引数のvarの削除

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

//Before
func foo(var i: Int) {

}
//After
func foo(i: Int) {
    var i = i
} 

関数の引数のvarが使用できなくなります。inout と混同するからのようです。


デバッグ用識別子の呼び出しの変更

FILE is deprecated and will be removed in Swift 3, please use #file

//Before
print("__FILE__ = \(__FILE__)")
print("__LINE__ = \(__LINE__)")
print("__COLUMN__ = \(__COLUMN__)")
print("__FUNCTION__ = \(__FUNCTION__)")

//After
print("#file = \(#file)")
print("#line = \(#line)")
print("#column = \(#column)")
print("#function = \(#function)")

インクリメントデクリメント削除

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

//Before
i++

//After
i += 1


CVarArgType -> CVarArg

//Before
CVarArgType...

//After
CVarArg...


関数呼び出し時一次変数のラベル明示

Establish consistent label behavior across all parameters including first labels

//Before
func foo(x:Int, y:Int) { ... }
foo(:,y:Int)

//After
func foo(x:Int, y:Int) { ... }
foo(x:Int,y:Int)