Pergunta

Eu gostaria de escrever uma função em Objective-C, como a mostrada abaixo, que leva um número variável de argumentos, e passa esses argumentos para +stringWithFormat:. Eu sei sobre vsnprintf, mas isso implicaria a conversão 'formato' o NSString para C e de volta (e também significaria converter os espaços reservados de formatação dentro dela, bem ...).

O código a seguir compila, mas é claro que não se comporta como eu quero:)

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

Basicamente: existe uma versão para va_list do método +stringWithFormat:, ou é possível escrever um

?
Foi útil?

Solução

initWithFormat: argumentos:

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;
}

eles não parecem ter um construtor de conveniência "stringWith ..." versão

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top