##はじめに
Swiftにはextensionという仕組みがあります。
クラスを継承せずとも、既存クラスに機能を追加できる、という大変便利な機能です。
開発するアプリに実装する処理内容が多くなってきても、extensionを有効活用することで簡潔なコードで表現しやすくなります。
脱初心者を目指す上で理解必須の仕組みだと思います。
##例1: Date型に日付文字列を生成するメソッドを追加
DateExtension.swift
extension Date {
func getDateTimeString() -> String {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss"
return dateFormatter.string(from: self)
}
}
このようにしておけば下記のようにして簡単に日付文字列を取得できるようになります。
変換メソッドを別に実装するよりも簡潔に書けます。
datesample.swift
let datestr = Date().getDateTimeString()
##例2:ViewControllerにアラート表示するメソッドを追加。
ViewControllerでアラート表示をしたい場合はよくあると思います。
それをextensionを使って簡単にできるようにします。
UIViewControllerExtension.swift
extension UIViewController {
func displayAlert(title:String, message:String){
let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alertController, animated: true, completion: nil)
}
}
どこのViewControllerからでも、たった1行でアラートウィンドウを出せます。
vcsample.swift
displayAlert(title: "警告", message: "高熱源体接近!")
##動作確認環境
Xcode: 11.7
iOS: 13.7
Swiftバージョン: Swift5
以上