How can i make a class method with variable length parameters, in Objective-C?
For example, a method like -arrayWithObjects:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
What you need is a variadic function. These functions take a flexible number of arguments, like NSLog
, [NSArray arrayWithObjects:...]
, etc.
See this tutorial:
http://www.numbergrinder.com/node/35
Copied from my answer here: Obj-C, trying to write an alternative to NSLog, but I want my function to concatenate like NSLog?
Take a look at varargs, e.g.: Apple Technical Q&A QA1405. It shouldn't matter whether the method is a class method or not.
Methods that take variable arguments are known as variadic methods. The "..." is the variable argument.
For example, your function declaration would be: - (void)specialWithX:(NSInteger)x y:(NSInteger)y, ...;
For additional information take a look at Variable argument lists in Cocoa
来源:https://stackoverflow.com/questions/5458428/variable-length-parameters-in-objective-c