はじめに
どうもTOSHです!
プログラミンングを教えていて、UIImageView
に対し、.image
をつけると、UIImageとして扱えるのはご存知の通りなのですが、どうも、型の概念が分かっておらず、Data型
のものに対しても.image
をつけて、UIImage
に変更している人がいたのですが、その時、extension
使えばできるんじゃねと思ってやってみることにしました
extensionとは
extension
は今ある機能を拡張するということで理解をしているが、厳密にはどんな感じなんだろうと思って調べてみました。
そもそもカテゴリとは、既存のクラスにメソッドを追加するというのが目的であったのに対し、extensionでは、以下のような機能の拡張が可能です。
・計算プロパティ(クラス、構造体に対して)
・タイププロパティ
・メソッド
・subscript
・イニシャライザ(初期化子)
・ネストされた型
・ プロトコルに対する準拠
参照:https://www.sejuku.net/blog/33334
ウンウン、みた感じ可能そうではある。(あんまりこのような使い方をしないのかもしれないが...)
やってみた
そもそも、Data型をUIImageに変更する場合は以下の通りである
var data: Data!
let image: UIImage = UIImage(data: data)
まあシンプルではあるが、今回の目的はextensionを使ってみることにあるので書いてみる
extension Data {
var image: UIImage {
let imagedData = UIImage(data: self)
return imagedData!
}
}
imageを定義してあげたので、これでうまくいくはずである。
これでやってみると
var data: Data!
let image: UIImage = data.image
で実際に、うまく動きましたとさ。
終わり