Я реверс-инжиниринг реактивного моста для библиотеки платежей, и я понятия не имею, что означает этот синтаксис. Это вызывает какую-то функцию? Оооо это вызывает некоторую функцию setCallBack ... которая является свойством, определенным внутри объекта checkout
из MercadoPagoCheckout
? И это свойство принимает другую функцию в качестве аргумента, и ^{ }
является своего рода анонимным функциональным блоком?
Я думаю, я только что нашел ответ. Nevermind haha
//Set up Cancellation Callback
[checkout setCallbackCancelWithCallback:^{
[uiNavigationController setNavigationBarHidden:TRUE];
[uiNavigationController popToRootViewControllerAnimated:NO];
reject(@"PAYMENT_CANCELLED", @"Payment was cancelled by the user.", nil);
}];
Вот полный код со скриншотом просто для удовольствия.
RCT_EXPORT_METHOD(startCheckoutForPayment: (NSString *) publicKey: (NSString *) preferenceId: (NSString *) color: (BOOL) enableDarkFont: (RCTPromiseResolveBlock) resolve: (RCTPromiseRejectBlock) reject) {
UINavigationController *uiNavigationController = (UINavigationController *) [UIApplication sharedApplication].delegate.window.rootViewController;
MercadoPagoCheckoutBuilder *builder = [[MercadoPagoCheckoutBuilder alloc] initWithPublicKey:publicKey preferenceId:preferenceId];
MercadoPagoCheckout *checkout = [[MercadoPagoCheckout alloc] initWithBuilder:builder];
//Set up Cancellation Callback
[checkout setCallbackCancelWithCallback:^{
[uiNavigationController setNavigationBarHidden:TRUE];
[uiNavigationController popToRootViewControllerAnimated:NO];
reject(@"PAYMENT_CANCELLED", @"Payment was cancelled by the user.", nil);
}];
...