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