Objective-Cで可変長パラメータを持つクラスメソッドを作成するにはどうすればよいですか?
たとえば、-arrayWithObjects のようなメソッド:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
Objective-Cで可変長パラメータを持つクラスメソッドを作成するにはどうすればよいですか?
たとえば、-arrayWithObjects のようなメソッド:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
varargs を見てみましょう。例: Apple Technical Q&A QA1405。メソッドがクラス メソッドであるかどうかは問題ではありません。
必要なのは可変個引数関数です。NSLog
これらの関数は、、などの柔軟な数の引数を取ります[NSArray arrayWithObjects:...]
。
このチュートリアルを参照してください:
http://www.numbergrinder.com/node/35
ここでの私の答えからコピーしました:Obj-C、NSLogの代替を書き込もうとしていますが、関数をNSLogのように連結したいですか?
可変引数を取るメソッドは、可変引数メソッドとして知られています。「...」は可変引数です。
たとえば、関数宣言は次のようになります。- (void)specialWithX:(NSInteger)x y:(NSInteger)y, ...;
追加情報については、Cocoa の可変引数リストを参照してください。