自分のクラス内のメソッドを呼び出す

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のままです。


良く使う処理はコピペしてコードを増やすのではなく、
上手にメソッド化していきたいですね。