Cómo "transmitir" un número variable de argumentos a NSString's + stringWithFormat:
-
07-07-2019 - |
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?
Solución
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