尝试使用AWSS3TransferManager运行块时出现以下错误:
incompatible block pointer types sending 'id ((^)(void)) to parameter of type 'AWSContinuationBlock' (aka id (^)(AWSTask *__strong))
我认为这是由于不同的块类型所致,在我期望AWSTask的同时,我目前不返回任何值,但是我不确定如何返回AWSTask。
_uploadRequest = [AWSS3TransferManagerUploadRequest new];
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
[[transferManager upload:_uploadRequest] continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task){
if (task.error){
NSLog(@"%@",task.error);
}
}];
最佳答案
该错误是由于您提供的块需要BFTask
参数而引起的。
将BFTask
参数更改为AWSTask
并返回它。
_uploadRequest = [AWSS3TransferManagerUploadRequest new];
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
[[transferManager upload:_uploadRequest] continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(AWSTask *task){
if (task.error){
NSLog(@"%@",task.error);
}
return task;
}];
关于ios - 使用AWSContinuationBlock发送兼容的指针 block 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31739190/