tener algunos problemas con el ...
en ObjectiveC.ObjectiveC que pasa alrededor ... nula terminado listas de argumentos
Básicamente estoy envolviendo un método y quiero aceptar una lista terminada nil
y pasar directamente esa misma lista al método que estoy envolviendo.
Aquí es lo que tengo pero causa un accidente EXC_BAD_ACCESS
. La inspección de los VARs locales, que aparece cuando otherButtonTitles
es simplemente una NSString
cuando se pasa con otherButtonTitles:@"Foo", nil]
+ (void)showWithTitle:(NSString *)title
message:(NSString *)message
delegate:(id)delegate
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ...
{
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:title
message:message
delegate:delegate
cancelButtonTitle:cancelButtonTitle
otherButtonTitles:otherButtonTitles] autorelease];
[alert show];
}
¿Cómo simplemente sifón del argumento de entrada al argumento saliente, preservando al mismo nil
lista terminada exacta?
el primer objeto en una lista de métodos variadic no es parte de la va_list en sí, por lo que se ve como un otherButtonTitles NSString. Es decir, la lista va_ solo comprende los objetos en la parte "...". – Don
Dado que Objective-C es un superconjunto de C, cf. http://stackoverflow.com/questions/150543/forward-an-invocation-of-a-variadic-function-in-c. – Don