Я получаю:
Инициализатор для условного связывания должен иметь необязательный тип, а не '(CLLocationCoordinate2D, String, UIColor) -> UIView'
на следующемстрока:
guard let popup = self.popupFunc else {return}
Это распространенная ошибка, но я просто не могу понять, почему она дает мне ошибку?Когда я удаляю условную привязку здесь, я просто получаю кучу ошибок в других частях функции, в которой она лежит.
var popup : UIView?
выше, как это объявлено.Он объявлен в другом VC, который расширен, чтобы я мог добавить методы MGLDelagate, и вот где следующая функция:
func showPopup(_ shouldShow: Bool, animated: Bool) {
guard let popup = self.popupFunc else {return}
if shouldShow {
view.addSubview(popup)
}
let alpha: CGFloat = (shouldShow ? 1 : 0)
let animation = {
popup.alpha = alpha
}
let completion = { (_: Bool) in
if !shouldShow {
popup.removeFromSuperview()
}
}
if animated {
UIView.animate(withDuration: 0.25, animations: animation, completion: completion)
} else {
animation()
completion(true)
}
}
Я пытаюсь достичь функциональности здесь .