Objective-Cを触り始めて一ヶ月が経ちました。先日言われて初めて気づいたのですが、Objective-Cでは第二引数以降はラベルをつけるのが一般的だそうです。
// 引数が3つの場合 - (戻り値の型)メソッド名:(引数の型)引数1 ラベル:(引数の型)引数2 ラベル:(引数の型)引数3 //@IT Objective-Cのクラスやプロパティ、特徴的なメソッドの使い方 (3/3) //http://www.atmarkit.co.jp/ait/articles/1404/09/news029_3.html より引用
実はこの引数のラベル、省略することができるので全く気づかなかったという…
実装
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *stringArgument1 = @"aiueo";
NSString *stringArgument2 = @"kakikukeko";
int intArgument = 5;
[self setMyArgument:stringArgument1 myArgument2:stringArgument2 myArgument3:intArgument];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void) setMyArgument:(NSString *)argument1 myArgument2:(NSString *)argument2 myArgument3:(int)argument3;{
NSLog(@"myArgument1:%@ myArgment2:%@ myArgment3:%d", argument1, argument2, argument3);
}
@end
実行結果
myArgument1:aiueo myArgment2:kakikukeko myArgment3:5
第一引数はメソッド名(ラベル名?)で関連付けができているので新たに明記しないとのこと