Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Swift - Xcode 6.1-Beta2 における変更点

More than 5 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away