HOME > Extension
Extensionとは?
Extensionとは既存のクラスを簡単に拡張できたりする機能です。例えば、String型にhogeというメンバ関数を簡単に追加できます。
参考:Example how to extend array type in Swift
参考:Swiftに関するメモ その9 - Extensions
やってみた
上記のString型にhoge関数を追加してみます。
import Foundation
extension String {
//メンバ変数のhogeを追加
func hoge()->String{
return "I am hoge";
}
}
これだけです。この記述をしたファイルをプロジェクトに追加するだけで、String型のクラスにhoge関数を利用することができます。
extensions.swiftを作成して追加
extensionの記述はどのファイルに記載していてもかまいませんが、今回はわかりやすく[extension.swift]ファイルを別途拡張用として作成してプロジェクトに追加してみます。
上記のようにプロジェクトに追加するだけで、下の様にコードヒントまで出てきてくれます。
メンバ変数を追加したい
変数は既存のクラスには追加できません。[Extension may not contain stored properties]と表記されてコンパイルできません。自作クラス等を作成する必要があります。
import Foundation
extension String {
var dynamicSalaryman:String = "Dynamic";
let staticSalaryman:String = "Static";
//メンバ変数のhogeを追加
func hoge()->String{
return "I am hoge";
}
}
上をコピペすると、下のエラーが発生します
複数の拡張を一つのファイルで実施したい
一つのファイルの中で複数の拡張を記載してもOKです。以下はStringとUIImageにそれぞれhogeメンバ関数を追加した例です。簡単に拡張できます。
import Foundation
import UIKit
//Stringにhogeを追加
extension String {
func hoge()->String{
return "I am hoge";
}
}
//UIImageにhogeを追加
extension UIImage {
func hoge()->String{
return "I am hoge at UIImage";
}
}
おまけ
Extensionは工夫次第で様々な事が可能です。以下サンプルサイト様をリストアップしてみましたのでよろしければご確認くださいませ。
- Array: Example how to extend array type in Swift
- UIColor: SwiftでHexColor(#34495eみたいなやつ)
- Double: Extension sample using Swift [closed]
- Array, NSMutableArray: ArrayとNSMutableArrayのランダムソートメソッドを作ってみた
- UIImage: [iOS 8] 単色の UIImage を作成する
↓こんな記事もありますよ!
![]() 2021-04-22 14:54:53 | かっこいいカルーセル厳選3点!WebGLを使った渋い画像スライダー。
昨日カッコいいスライダーを探す旅にでていました。
よく使われるswiper など、シンプルで使いやすくデザインも良いのですが、何かもの足りない、、、。
そこで調べていくと、webglを使... |
![]() 2021-04-20 14:46:43 | Twillioとは何??skywayとは何が違うのか。webrtcを使う際に判断する情報。
先日webrtc開発で「twillio」といった名前を聞きました。
以前自分でskywayを使ってwebrtcを試していた際に調べた時には、無かったような気もするんだけと、KDDIが絡んでいる... |
![]() 2021-04-19 13:58:21 | 先日久々にアップデートした妊娠週刊パパのAndroid版も。アカウント移管したいんだけど、注文ID見当たらないよ。
先日の妊娠、出産、育児関連のアプリ「妊娠週刊パパ」をAndroid studioで再リリースしようと思ってるんだけど、コンパイル失敗してエミュレータで動かせない。
多分sdkとかapiのバージ... |
Tweet
![]() |
|||
|