swift - 不兼容的块指针类型发送与 ViperMcFlurry 的 'id 问题
问题描述
我在我的项目中使用 ViperMcFlurry 多年来没有出现任何问题,并且使用 XCode 12 beta 6 它返回Incompatible block pointer types sending
错误。我尝试了各种方法来修复它,但没有机会。它返回
Incompatible block pointer types sending 'id<RamblerViperModuleOutput> (^)(__strong id<RamblerModuleBetaInput>)' to parameter of type 'RamblerViperModuleLinkBlock' (aka 'id<RamblerViperModuleOutput> (^)(__strong id<RamblerViperModuleInput>)')
我尝试做的是
[[self.transitionHandler openModuleUsingSegue:RamblerAlphaToBetaSegue]
thenChainUsingBlock:^id<RamblerViperModuleOutput>(id<RamblerModuleBetaInput> moduleInput) {
[moduleInput configureWithExampleString:exampleString];
return nil;
}];
我有
@protocol RamblerModuleBetaInput <RamblerViperModuleInput>
在RamblerModuleBetaInput.h
. 我也有
@protocol RamblerViperModuleInput <NSObject>
在RamblerViperModuleInput.h
解决方案
请参阅https://github.com/rambler-digital-solutions/ViperMcFlurry/pull/37或暂时您可以通过在 Build Settings 中添加标志CFLAGS
来禁用 check来解决它-Xclang -fcompatibility-qualified-id-block-type-checking
。
推荐阅读
- javascript - 如何在 JSdoc 中的方法中记录嵌套函数
- tsql - 如何识别 SQL Server 2016 中的截断列
- android - Android Studio - 如果在包中,生成的绑定类找不到符号
- ios - 如何在集合视图的 elementKindSectionHeader 下方附加 UI 视图?
- javascript - jQuery .load() 在移动设备上阻止了我的脚本
- node.js - 如何编写对元素重新排序的查询
- python - 如何通过 pip / pipenv CLI 获取更新包的更改日志?
- c# - 如何在我的 WiFi Direct 服务中宣传数据
- xamarin - 在我的列表视图中添加下拉区域选项
- reactjs - 使用 Enzyme 测试 React Router Links 上的点击行为