Параметры переменной длины в Objective-C - PullRequest
2 голосов
/ 28 марта 2011

Как я могу создать метод класса с параметрами переменной длины в Objective-C?

Например, такой метод, как -arrayWithObjects:

NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];

Ответы [ 3 ]

5 голосов
/ 28 марта 2011

Взгляните на varargs, например: Технические вопросы и ответы Apple QA1405 . Не должно иметь значения, является ли метод методом класса или нет.

3 голосов
/ 28 марта 2011

То, что вам нужно, это функция с переменным числом.Эти функции принимают гибкое количество аргументов, например NSLog, [NSArray arrayWithObjects:...] и т. Д.

См. Этот учебник:

http://www.numbergrinder.com/node/35

Скопировано из моего ответа здесь: Obj-C, пытается написать альтернативу NSLog, но я хочу, чтобы моя функция конкатенировалась как NSLog?

3 голосов
/ 28 марта 2011

Методы, которые принимают переменные аргументы, называются переменными методами. "..." является аргументом переменной.
Например, объявление вашей функции будет: - (void)specialWithX:(NSInteger)x y:(NSInteger)y, ...;

Для получения дополнительной информации посмотрите Переменные списки аргументов в Какао

...