Несовместимые типы указателей блоков, отправляющие проблему с идентификатором с ViperMcFlurry
Я использовал 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
0 ответов
См. https://github.com/rambler-digital-solutions/ViperMcFlurry/pull/37 или временно вы можете обойти это, добавив флаги в настройки сборки
CFLAGS
отключить проверку
-Xclang -fcompatibility-qualified-id-block-type-checking
.