Как я могу создать метод класса с параметрами переменной длины в Objective-C?
Например, такой метод, как -arrayWithObjects:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
Взгляните на varargs, например: Технические вопросы и ответы Apple QA1405 . Не должно иметь значения, является ли метод методом класса или нет.
То, что вам нужно, это функция с переменным числом.Эти функции принимают гибкое количество аргументов, например NSLog, [NSArray arrayWithObjects:...] и т. Д.
NSLog
[NSArray arrayWithObjects:...]
См. Этот учебник:
http://www.numbergrinder.com/node/35
Скопировано из моего ответа здесь: Obj-C, пытается написать альтернативу NSLog, но я хочу, чтобы моя функция конкатенировалась как NSLog?
Методы, которые принимают переменные аргументы, называются переменными методами. "..." является аргументом переменной. Например, объявление вашей функции будет: - (void)specialWithX:(NSInteger)x y:(NSInteger)y, ...;
- (void)specialWithX:(NSInteger)x y:(NSInteger)y, ...;
Для получения дополнительной информации посмотрите Переменные списки аргументов в Какао