Да.
Вы найдете их в стандартных рамках. Например, NSArray
имеет метод:
- (id)initWithObjects:(id)firstObj, ...
...
указывает, что метод принимает переменное число аргументов.
Чтобы написать свои собственные вариационные методы, вам нужно использовать стандартные вариационные функции C, см. stdarg
в документации. Схема выглядит следующим образом:
+ (void) msgWithFormat:(NSString *)format, ...
{
va_list args;
va_start(args, format);
// use the va_arg() function to access the arguments - see docs for stdarg
va_end(args);
}
Это прямо аналогично эквиваленту C:
void DebugLog_Msg(const char *format, ...)
{
va_list args;
va_start(args, format);
// use the va_arg() function to access the arguments - see docs for stdarg
va_end(args);
}