というわけでつつがなくMacBook Airより高いキョダiPhone128GBを予約するやいなや、YosemiteがDP8に、XCodeが6.1-Beta2になっていたので。
Swiftが1.1に
1.0が出たばかりだというのになんとも気が早いことです。Xcodeも6.1こそ本命ということでしょうね。
Beta6より引き続き…
Optional型に関するさらなる改良はずっとやっているみたいです。
Failable Initializer
で、1.0と1.1で最も変わったのがこれでしょう。これまでは
let foo = Foo.fromBar(yourBar) // foo:Foo?
とFactory Methodを用意していたものが、
let foo = Foo(bar:yourBar) // foo:Foo?
と、Failable Initializerに移行されました。Failableというだけあって、戻り値はFoo
ではなくFoo?
です。
自分で書く場合init()
の代わりにinit?()
を定義し、その中でreturn nil
すればよいようです。
Objective-Cのinitializerのimport
nil
を明確に返す場合はinit?
、そうでない場合はinit!
としてimport
されるようです。
enum の.fromRaw(value)もYourEnum(rawValue:value)に
RawRepresentable
プロトコルに従った(つまりで型を継承している)enum
はにはもれなく.fromRaw(val)
メソッドがついてきたのですが、これもYourEnum(rawValue:val)
という書き方に変わりました。
加えて.toRaw()
メソッドもrawValue
プロパティに置き換えられています
enum Foo: Int { case A = 0, B = 1, C = 2 }
let foo = Foo(rawValue: 2)! // 以前は 'Foo.fromRaw(2)!’
println(foo.rawValue) // 以前は 'foo.toRaw()'!
@UIApplicationMainアトリビュート
iOSにおける@UIApplicationMain
に相当する@NSApplicationMain
がOS Xのapp delegateにおける暗黙のmain
を指定するアトリビュートとして追加されました。
私からは以上です。
Dan.the.Swift.Newbie?