0

我正在使用具有以下方法签名的 API:

- (BOOL)executeCommandIfConfirmed:
     (void (^)(void (^confirmationAnswer)(BOOL answer)))confirmationBlock;

有人可以提供一个正确调用的示例吗?我正在挣扎。

4

1 回答 1

2
[object executeCommandIfConfirmed:^(void (^confirmationAnswer)(BOOL answer)) {
   confirmationAnswer(TRUE);
}];

编辑:

如果你想使用 a UIAlertView,你必须像往常一样创建一个类作为它的委托,但是你需要将回调块传递给委托的构造函数并将其存储在一个字段中。然后委托-alertView:didDismissWithButtonIndex:将回调到回调块。

但是,如果您仍然使用块,为什么不使用PSAlertView基于块的包装器AlertView

[object executeCommandIfConfirmed:^(void (^confirmationAnswer)(BOOL answer)) {
   PSAlertView *alert = [PSAlertView alertWithTitle:@"Alert" 
          message:@"Do you want to continue?"];
   [alert addButtonWithTitle:@"Yes" block:^{ confirmationAnswer(TRUE); }];
   [alert setCancelButtonWithTitle:@"No" block:^{ confirmationAnswer(FALSE); }];
   [alert show];
}];
于 2013-11-12T21:08:31.630 回答