宣言部分は、こんな感じ。
- (void)myPrint:(NSString *)firstStr, ...;
実装部分はこんな感じで、C言語の方法とよく似たやり方である。
- (void)myPrint:(NSString *)firstStr, ... {
va_list ap;
NSString *aStr;
if (firstStr) {
NSLog(@"%@", firstStr);
va_start(ap, firstStr);
aStr = va_arg(ap, NSString *);
while (aStr) {
NSLog(@"%@", aStr);
aStr = va_arg(ap, NSString *);
}
va_end(ap);
}
}
最初の引数は va_arg でリターンされないことに注意(printf()ライクな書式+引数の場合に便利だからだろうか)。終了条件は基本的に nil でもらうように実装するのが分かりやすいハズ。
コメントを書く