El método no '@ objc' no cumple el requisito opcional del protocolo '@objc'

Visión de conjunto:Tengo un protocolo P1 que proporciona una implementación predeterminada de una de las funciones opcionales de Objective-C.Cuando proporciono una implementación predeterminada de la función opcional, aparece una advertenciaAdvertencia del compilador:
Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate'
Versión:Rápido: 3Xcode: 8 (lanzamiento público)Intentos realizados:Intenté agregar@objc pero no ayudaPregunta:¿Cómo resuelvo esto?¿Hay alguna solución?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 {

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta