2016年12月27日

Swift2.3からSwift3.0への移行

詳解Swift 第3版

新品価格
¥3,456から
(2016/12/27 00:14時点)



Xcode8系からSwift3.0がサポートされ
2.3が切られることが明確になったので
Swift3.0への移行を行なった。

コンバーターかませばそれで終わりだろうと思ったら
エラー吐いてて、コードの書き方結構変わってた
以下、Swift

・Swift2.3で動かす場合
最初はエラー吐いてたので一旦逃げた
Use Legacy Swift Language Version
http://qiita.com/Hakota/items/4a5e9201c7dc17e9017a


・関数の引数
func test(a:int, b:int)
だったら
test(1,b:2)
と最初は引数をつけない謎仕様がSwift2.3だったけど
swift3.0からは
test(a:1,b:2)
という仕様になった。
ただし、このままだと困るのでコンバーターかますと
func test(_ a:int, b:int)
と_が入ってswitf3.0でも
test(1,b:2)で呼び出しができるようになってる
http://dev.classmethod.jp/smartphone/iphone/swift3_0046_first_label/


・NS系がなくなった
NSData→Data
のようにNS系のものの型が変わった
http://dev.classmethod.jp/smartphone/iphone/implemented_proposals_for_swift3/


・get request
第一引数がURL型でできる
func dataTask(with url: URL,
completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask
https://developer.apple.com/reference/foundation/urlsession/1410330-datatask


・post request
var request = URLRequest
して今まで通り。
なぜか、NSMutableURLRequest
swiftConverterにかからなかった。
あと、NSErrorもErrorに直す必要あり
http://joyplot.com/documents/2016/10/05/swift-php-post/


・@escaping
離脱するクロージャーは@escapingをつける必要がある
マスタカの場合、httpリクエストのcompleteHandlerが
@escapingしろとのエラーに引っかかった
http://tech.vasily.jp/entry/swift_evolution_escape



一旦ここまででswfit3.0移行はおしまい。
objective-cをなるべくなくす方向に行くか
androidのモダン対応やるか
とやることはまだまだあるので、今後のマスタカに期待
タグ:Swift
posted by マスタカ at 00:16 | Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。