7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Swift] DataをData.imageでUIImageとして扱う方法(extensionの使い方)

Last updated at Posted at 2018-10-04

はじめに

どうも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

で実際に、うまく動きましたとさ。

終わり

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?