2

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];

3 Answers 3

5

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.

Sign up to request clarification or add additional context in comments.

Comments

3

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?

Comments

3

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.