O método que não é '@ objc' não atende aos requisitos opcionais do protocolo '@objc'
Visão global:Eu tenho um protocolo P1 que fornece uma implementação padrão de uma das funções opcionais do Objective-C.Quando forneço uma implementação padrão da função opcional, há um avisoAviso do compilador:
Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate'
Versão:Swift: 3Xcode: 8 (lançamento público)Tentativas feitas:Tentei adicionar@objc
mas não ajudaPergunta, questão:Como eu resolvi isso?Existe uma solução alternativa?Código:@objc protocol P1 : UIAdaptivePresentationControllerDelegate {
}
extension P1 where Self : UIViewController {
func presentationController(_ controller: UIPresentationController, viewControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIViewController? {
return UIViewController()
}
}
class A : UIViewController, P1 {
}