extensionについて

extension(クラス拡張)とは、既存のクラスに対して、Computedプロパティやメソッド等を追加することができるものである。

使用例

import UIKit

// extension ここではUIColorを拡張する
extension UIColor {
    class func originalColor() -> UIColor {
        return UIColor(red: 0.1, green: 0.2, blue: 0.3, alpha: 1)
    }
}

class extensionColorTest {
    let extenstionColor = UIColor.originalColor()
}

使い方

  • 様々なクラスに共通する処理を入れる時に共通するスーパークラスが存在すれば問題ないが、そうでない場合にはextensionを用いることで一つにまとめることができ、コードをシンプルにすることができる。
  • 追加・再定義できるものは算出型プロパティやメソッド、イニシャライザである。
  • 拡張したものが使用できることはもちろんのこと、Xcodeの補完も効く様になる。