Использовать NSArray для указания другихButtonTitles?

Конструктор UIAlertSheet принимает параметр otherButtonTitles в качестве списка varg. Вместо этого я хотел бы указать другие заголовки кнопок из NSArray. Это возможно?

то есть я должен сделать это:

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

Но так как я генерирую список доступных кнопок во время выполнения, я действительно хочу что-то вроде этого:

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

Прямо сейчас, я думаю, что мне нужно сделать отдельный звонокinitWithTitle: за 1 предмет, 2 предмета и 3 предмета. Нравится:

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
}

Это много повторяющегося кода, но на самом деле это может быть разумно, так как у меня не более трех кнопок. Как я могу избежать этого?

Ответы на вопрос(6)

Ваш ответ на вопрос