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では一般的なのだそうだ。

今日はここまで。