自分のクラス内のメソッドを呼び出す
Objective-Cのクラス内でメソッドを自作して呼び出す方法
以下のような簡単なログを出す処理があるとします。
単純にするため、「SingleViewApplication」でプロジェクトを作った時に、
はじめから書いてあるviewDidLoad内に記述しています。
[example1]
@implementation MethodTestViewController - (void)viewDidLoad { [super viewDidLoad]; //この部分をメソッド化します。 NSLog(@"\n自分のクラス内のメッセージです。"); }
上のコードのNSLogの部分を別のメソッド(処理のまとまり)にして、
viewDidLoad内のコードをスッキリさせたい時は以下の様に書くことができます。
[example2]
#import "MethodTestViewController.h" @interface MethodTestViewController () //(1) - (void)showMsg; @end @implementation MethodTestViewController - (void)viewDidLoad { [super viewDidLoad]; //(2) [self showMsg]; } //(3) - (void)showMsg{ NSLog(@"\n自分のクラス内のメッセージです。"); }
簡単に解説をします。
(1) showMsgメソッドをこのクラス内で使うという準備「宣言」をします。
voidは戻り値なしを表します。
(2) 自クラスを表す特殊な変数「self」に宣言したメソッド名でメッセージを送ります。
objective-cではメッセージ式といって、[レシーバ メッセージ]の順番で書きます。
※レシーバはメッセージの受け取り手となるオブジェクトの事です。
この場合レシーバ「self」に「showMsg」というメッセージを送信するという意味になります。
(3) showMsgメソッドの実装です。中身はexample1のままです。
良く使う処理はコピペしてコードを増やすのではなく、
上手にメソッド化していきたいですね。