【swift/Xcode】swiftのextensionの使い方。(Xcodeのプロジェクトに応用する方法)
今回の記事ではswiftの便利なextension機能について記載指定いきます。
大体のgit等に上がっているAppleのものも基本的にextensionフォルダを作ってXcodeプロジェクトの中で自由に利用できるようにしているようなので、そういったものを利用する際にも必要になってくる知識です。
まず端的にextensionとは何かというと、クラスの機能拡張を行いどこからでも使用できるようになるものという認識で問題ないと思っています。
では具体例を含め内容記載していきます。
めんどくさいのでXcodeにてボタンを押せばコンソールに文字を出力するようにボタンの設置とそのボタンにActionを付け加えました。
これでExtensionの機能をこのアクション内に記載していけばすぐに確認を行うことができますね。
では確認の準備もできたのでみていきましょう。
extensionを同じファイルから利用する
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func extension_test(_ sender: Any) {
//Wordクラスのインスタンスを作成
var word = Word()
word.extension_print()
//class内の関数
word.updateword(newName:"extension_test2")
//classを拡張したもの
print("test")
}
}
class Word {
var word = "extension_test1"
func extension_print() {
print(word)
}
}
extension Word {
func updateword(newName:String) {
word = newName
print(word) //更新したword出力
}
}
念のためXcode内のcontrollerview.swiftに記載しております。
解説をするとclassにてwordを出力する関数があるのですがそれをさらに拡張させて使用しています。拡張機能としてはwordの中身を変更するというもの。
これでエミュレータに実行し、buttonを押すとコンソールに出力させることができます。
まとめるとWordクラスの機能を拡張(extention)させる機能が付きます。
別ファイルのextension機能を実行する
次に別ファイルからextensionさせる機能について紹介します。
iOSのプロジェクトを作っていく場合、おそらくExtensionファイルに全てのextension機能をまとめるともいますのでこちらの方が出現頻度は高いかもしれません。
とは言っても簡単です。
先ほど作成したファイルと同じXcodeプロジェクトの中で、extensionを別のファイルに保存させて別swiftファイルを作成しExtension機能追加させて実行して確認してみましょう。
extension Wordを削除した瞬間はエラー表示が出ますが、extension.swiftにextensionの記述を書けばエラーは消えます。これで実行してみればさっきと同じ結果になっているはず。
つまりextension機能を利用する際は特に何か操作をする必要はなくextensionの宣言下かつプロジェクトないならどこからでも拾ってこれるみたいです。
要はプロジェクトをする際にextension専用のファイルを作っている理由は簡易しやすい様にまとめているためですね。
コメント