Project Unknown's Blog

Peojct.Unknownと言う名前で細々とアプリ開発をやってるメンバーのブログです。

Objective-Cでメソッドを呼び出す方法

こんばんは、どうまずです。
前回の投稿で、ログを出力する方法を記載しました。
今度はそれをメソッドにして、呼び出してみようと思います。

ちなみに、前回からkobitoというツールを勧められ、使いながら投稿しています。
思ったより楽に投稿できたので、あとで簡単にやり方を書いてみます。

基本型

まず、ViewController.mを下記のように書き換えました。

 
- (void)viewDidLoad {
    [super viewDidLoad];

    //ラベルの中身を書き換える!
    _RTtestLabel.text = @"こんにちは世界";

    //メソッドを使う
    [self outPutLog];

}

-(void)outPutLog {

    _RTtestLabel.text = @"やっほー世界";

}

まずメソッドの基本は

-(返す型)メソッド名 {
   メソッドの中身
}

となります。
ちなみに今回はログを出力するだけなので、何も返さない「void」にします。

それを使うには[self outPutLog];と記載します。
outPutLogメソッドは、このViewController.mに書いてある、
つまり自分自身のメソッドなので、selfとなります。

実行結果は下記の通りです。
20150110_1.png

ちゃんとログがでました。

引数を追加

今度は引数を渡して、結果を返すようにします。
そのため、下記のように書き換え

 
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //ラベルの中身を書き換える!
    _RTtestLabel.text = @"こんにちは世界";

    //メソッドを呼び出す
    [self outPutLogWithMsgA:@"引数を渡すよ!" msgOutB:@"二つ目渡すよ"];
}

-(void)outPutLogWithMsgA:(NSString*) msgInA msgOutB:(NSString*) msgInB{

    //ログを出力する。
    NSLog(@"%@",msgInA);
    NSLog(@"%@",msgInB);
}

まず、メソッドの宣言の意味は下記の通り

-(返す型)メソッド名:(引数1の型) 引数1の内部の名前 引数2の外部の名前:(引数2の型) 引数2の内部の名前 {
   メソッドの中身
}

Objective-Cはこのように外部の引数名と内部の引数名を分けて記載するようです。
今回は違いがわかりやすく外部の引数名と内部の引数名を分けましたが、
無理して名前を変える必要はないです。
よく見ると、第一引数の外部の引数名が無いですが、メソッド名に書いて省略するようです。
わざわざ外部の引数名を書く必要があるのかとか、
メソッド名長すぎるとかいろいろ思うところがありますが、
これはObjective-Cを開発した人の思想が反映されているのでしょうね。

で、これを実行すると下記のようになります。
20150110_2.png

これである程度メソッドは使えるかな。
次回は外部のクラスからメソッドを呼ぶ方法ですね。