Pregunta

Me gustaría escribir una función en Objective-C como la siguiente, que tome un número variable de argumentos y pase esos argumentos a + stringWithFormat: . Sé sobre vsnprintf , pero eso implicaría convertir el 'formato' de NSString a C y viceversa (y también significaría convertir los marcadores de posición de formato dentro de él también ...).

El siguiente código se compila, pero por supuesto no se comporta como quiero :)

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

Básicamente: ¿hay una versión amigable va_list del método + stringWithFormat: , o es posible escribir uno?

¿Fue útil?

Solución

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

no parecen tener un constructor de conveniencia '' stringWith ... '' versión

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top