sci

最果て風呂

Swift 3.0 を触った

Xcode を 8.1 にアップデートすることができたので、私製 Hello, World! 集である moonphases を実行してみることにしました。コンパイラの表示するエラーがとても親切なので、割と簡単に修正ができそうです。

getsurei.swift:13:19: error: 'NSDateFormatter' has been renamed to 'DateFormatter'
let format_year = NSDateFormatter()
                  ^~~~~~~~~~~~~~~
                  DateFormatter

getsurei.swift:15:43: error: 'NSDate' is not implicitly convertible to 'Date'; did you mean to use 'as' to explicitly convert?
let year = Int(format_year.stringFromDate(date))!
                                          ^
                                               as Date

getsurei.swift:15:28: error: 'stringFromDate' has been renamed to 'string(from:)'
let year = Int(format_year.stringFromDate(date))!
                           ^~~~~~~~~~~~~~
                           string         from: 

<unknown>:0: note: 'stringFromDate' has been explicitly marked unavailable here

NS の Prefix が削除(さらば NeXTSTEP)されて、stringFromDate() の書式がちょこっと変更になったみたいです。まとめると下記の修正をすれば動くようになりました。

NSDate()             -> Date()
NSDateFormatter()    -> DateFormatter()
stringFromDate(hoge) -> string(from:hoge)

今までコロコロと仕様が変更になってきましたけれど、これが最後でしょうか?そろそろ本格的に触れそうな雰囲気です。

あらら、新月なんですね。