Подтвердить что ты не робот

Как "передать" переменное количество аргументов в NSString + stringWithFormat:

Я хотел бы написать функцию в Objective-C, такую ​​как приведенная ниже, которая принимает переменное число аргументов и передает эти аргументы на +stringWithFormat:. Я знаю о vsnprintf, но это означало бы преобразование формата NSString 'в C и обратно (а также означало бы преобразование в него помещиков форматирования...).

Код ниже компилируется, но, конечно, не ведет себя так, как я хочу:)

NSString *estr(NSString *format, ...) {
    va_list args;
    va_start(args, format);
    NSString *s = [NSString stringWithFormat:format, args];
    va_end(args);
    return s;
}

В принципе: существует ли va_list дружественная версия метода +stringWithFormat: или можно написать один?

4b9b3361

Ответ 1

initWithFormat:arguments:

NSString *estr(NSString *format, ...) {
    va_list args;
    va_start(args, format);
    NSString *s = [[[NSString alloc] initWithFormat:format arguments:args] autorelease];
    va_end(args);
    return s;
}

у них нет конструктора удобства "stringWith..." version