というわけでつつがなく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?