Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 231 - Developing iOS 8 Apps with Swift - タイプとインスタンス・メソッド

Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide

「More Swift and Foundation Frameworks」の講義はゆっくり進んでいます。

本当にゆっくりです。まあ理解力が落ちているので仕方ないんですけどね。

今日はMethodに関して理解したことを書き留めておこう。

スーパークラスメソッド(func)やプロパティ(var)は、overrideキーワードを使って書き換えることができる。

finaclキーワードを使ったらメソッドのoverrideはできない。

そして、タイプとインスタンスメソッドの違いのポイントを挙げている。

var d: Double = ...

if d.isSignMinus {
 d = Double.abs(d)
}

「isSignMinus」はDouble型インスタンスメソッドですが、「abs」はDoubleのタイプメソッドなので特定のインスタンスメソッドではなくDouble型タイプすべてに共通するメソッドです。

このタイプメソッドの宣言法は、classの中で「static」プリフィックスをつける必要がある。

static func abs(d: Double) -> Double

タイプメソッドはユーティリティとして使用されるので、オープンにされたクラスに実装することで有効利用される。グローバルファンクションの代わりにタイプメソッドを使うのがiOSでは一般的なのだそうだ。

今日はここまで。