Use o NSArray para especificar otherButtonTitles?
O construtor de UIAlertSheet usa um parâmetro otherButtonTitles como uma lista varg. Eu gostaria de especificar os outros títulos de botão de um NSArray. Isso é possível?
ou seja, eu tenho que fazer isso:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: button1Title, button2Title, nil];
Mas desde que eu estou gerando a lista de botões disponíveis em tempo de execução, eu realmente quero algo como isto:
id alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: cancelString
destructiveButtonTitle: nil
otherButtonTitles: otherButtonTitles];
No momento, estou pensando que preciso ter uma ligação separada parainitWithTitle:
para 1 item, 2 itens e 3 itens. Como isso:
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
}
Isso é um monte de código duplicado, mas pode ser razoável, já que eu tenho no máximo três botões. Como posso evitar isso?