Проблема заключается в следующем объявлении:
private func imagePickerController(
_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
Вы объявили этот метод private
, поэтому Objective-C не может знать, что он существует.Таким образом, он не может вызвать его.
По сути, Какао проверяет, реализован ли этот метод, обнаруживает, что он не (потому что вы его скрыли), исдается.Там нет видимых штрафов, потому что этот метод делегата является необязательным, и когда он не реализован, Какао отклоняет сборщик для вас, когда пользователь закончил с ним.
Так что просто удалите private
, и вы должны быть хорошимиидти.Это подвергает метод делегата Objective-C, и поэтому он будет вызван.
(Вы не должны говорить @objc
, чтобы выставить его Objective-C, как если бы это быловаша собственная функция, потому что вы объявили, что мы принимаем UIImagePickerControllerDelegate, который является протоколом Objective-C.)