Use NSArray para especificar otherButtonTitles?

El constructor de UIAlertSheet toma un parámetro otherButtonTitles como una lista varg. Me gustaría especificar los otros títulos de botones de una NSArray en su lugar. es posible?

es decir, tengo que hacer esto:

id alert = [[UIActionSheet alloc] initWithTitle: titleString
                                  delegate: self
                                  cancelButtonTitle: cancelString
                                  destructiveButtonTitle: nil
                                  otherButtonTitles: button1Title, button2Title, nil];

Pero como estoy generando la lista de botones disponibles en tiempo de ejecución, realmente quiero algo como esto:

id alert = [[UIActionSheet alloc] initWithTitle: titleString
                                       delegate: self
                              cancelButtonTitle: cancelString
                         destructiveButtonTitle: nil
                              otherButtonTitles: otherButtonTitles];

En este momento, estoy pensando que necesito tener una llamada separada ainitWithTitle: para 1 artículo, 2 artículos y 3 artículos. Me gusta esto:

if ( [titles count] == 1 ) {
     alert = [[UIActionSheet alloc] initWithTitle: titleString
                                         delegate: self
                                cancelButtonTitle: cancelString
                           destructiveButtonTitle: nil
                                otherButtonTitles: [titles objectAtIndex: 0], nil];
} else if ( [titles count] == 2) {
     alert = [[UIActionSheet alloc] initWithTitle: titleString
                                         delegate: self
                                cancelButtonTitle: cancelString
                           destructiveButtonTitle: nil
                                otherButtonTitles: [titles objectAtIndex: 0], [titles objectAtIndex: 1],  nil];
} else {
    // and so on
}

Eso es mucho código duplicado, pero en realidad podría ser razonable ya que tengo como máximo tres botones. ¿Cómo puedo evitar esto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta