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