Инициализатор для условного связывания должен иметь необязательный тип, а не '(CLLocationCoordinate2D, String, UIColor) -> UIView'? - PullRequest
0 голосов
/ 22 февраля 2019

Я получаю:

Инициализатор для условного связывания должен иметь необязательный тип, а не '(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)
    }
}

Я пытаюсь достичь функциональности здесь .

1 Ответ

0 голосов
/ 22 февраля 2019

"Func" здесь неверен:

guard let popup = self.popupFunc else {return}

Из ошибки и остальной части вашего обсуждения и кода вы, кажется, имели в виду:

guard let popup = self.popup else {return}

Это не ясночто такое popupFuncЭто определено, вы просто не перечислите это здесь.Возможно, вы случайно разрешили автозаполнению выбрать неправильное свойство?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...