2013-08-02 3 views
1

У меня есть следующий блок, определенный в моем классе:Read возвращает значение из блока

typedef BOOL (^AlertViewShouldEnableFirstOtherButtonHandler)(AlertView *alertView); 

я называю этот блок, как это в моем ViewController и возвращает логическое значение, как и следовало ожидать от блока.

self.alertView.shouldEnableFirstOtherButtonHandler = ^BOOL (AlertView *alertView) { 

    return YES; 
} 

Как мне получить/прочитать возвращаемое значение в моем классе?

+0

Пожалуйста, пост код, где вы вызываете функцию блока? –

+0

немного сложно сказать, с вашего имени блока, что он должен делать, но не уверен, что блок - лучший способ справиться с этим; больше похоже на свойство, которое должно быть установлено. – timpone

+0

Это соответствует сообщению UIAlertView Delegate - (BOOL) alertViewShouldEnableFirstOtherButton: (UIAlertView *) alertView, которое возвращает bool на основе некоторых условий, чтобы включить первую кнопку в alertview с текстовым полем. Я пытаюсь реализовать эту функцию в пользовательском классе alertview и использовать ее для использования блока (функции), такого как исходное сообщение делегата. – 7c9d6b001a87e497d6b96fbd4c6fdf

ответ

7

Единственный способ получения возвращаемого значения из блока, чтобы вызвать его:

UIAlertView *av = [[UIAlertView alloc] 
    initWithTitle:@"Quick brown" 
    message:@"fox jumps" 
    delegate:self 
    cancelButtonTitle:@"over the" 
    otherButtonTitles:@"Lazy dog", 
    nil]; 
BOOL blockResult = self.alertView.shouldEnableFirstOtherButtonHandler(av); 
+0

Работает! ... Большое спасибо за быстрый ответ, я приму его, когда это возможно. – 7c9d6b001a87e497d6b96fbd4c6fdf

Смежные вопросы