Реализовать протокол через расширение [дубликат]

На этот вопрос уже есть ответ здесь:

Swift: использование расширения протокола приводит к «нераспознанному селектору, отправленному экземпляру» 2 ответа

Я пытаюсь создать протокол, который обернет процесс использования UIImagePickerController, чтобы сделать его более упорядоченным в моих приложениях. По сути, у меня есть что-то вроде этого:

public protocol MediaAccessor : UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func mediaCaptured(title: String, fileData: NSData, fileType: String)
}

и расширение, которое выполняет всю тяжелую работу по запросу разрешения и обработке методов делегата:

public extension MediaAccessor where Self : UIViewController {
    public func captureMedia() {
        //All sorts of checks for picker authorization
        let picker = UIImagePickerController()
        picker.delegate = self
        self.presentViewController(picker, animated: true, completion: nil)
    }

    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
        //implementation of the delegate in extension
        //even though everything compiles, this method is not called on picker completion
    }
}

Итак, все компилируется, но реализация UIImagePickerControllerDelegate через расширение, похоже, не регистрируется. Когда я показываю средство выбора, оно позволяет мне сделать снимок, но вызов didFinishPickingImage никогда не происходит. Если я перенесу этот вызов непосредственно в контроллер, все будет работать нормально, но идея этого состояла в том, чтобы спрятать этот материал от контроллера представления для очень чистого интерфейса, чтобы позволить контроллеру получать доступ к носителю с устройства. Реализация протокольных методов через такое расширение не работает? Есть ли что-то, что я могу изменить, чтобы это работало без необходимости реализовывать протокол непосредственно в моем контроллере представления?

Ответы на вопрос(1)

Ваш ответ на вопрос