【发布时间】:2015-11-22 01:14:57
【问题描述】:
我正在使用下面的代码来验证我的 Shopify 结帐是否成功...但是行:
[self.client getCompletionStatusOfCheckout:self.checkout
completion:^(BUYCheckout *checkout, BUYStatus status, NSError *error)
{
给我一个最奇怪的错误:
"不兼容的块指针类型发送 'void(^)(BUYCheckout *___Strong, BUYStatus, NSError *___Strong' 到参数类型'BUYDataCheckoutStatusBlock''
我该如何解决这个问题?这是什么意思?如果您需要更多代码/详细信息,请告诉我。干杯。
.h
@property (nonatomic, strong) BUYClient *client;
.m
-(void)verifyCheckout{
__block BUYStatus buyStatus = BUYStatusUnknown;
__block BUYCheckout *completedCheckout = self.checkout;
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
do {
[self.client getCompletionStatusOfCheckout:self.checkout completion:^(BUYCheckout *checkout, BUYStatus status, NSError *error) {
completedCheckout = checkout;
buyStatus = status;
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
if (buyStatus == BUYStatusProcessing) {
[NSThread sleepForTimeInterval:0.5];
} else {
}
} while (completedCheckout.token && buyStatus != BUYStatusFailed && buyStatus != BUYStatusComplete);
}
【问题讨论】:
-
使用
BUYDataCheckoutStatusBlock和getCompletionStatus:方法的声明更新您的问题。
标签: ios objective-c