我正进入(状态:


  条件绑定的初始化程序必须具有可选类型,而不是“((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)
    }
}


我试图获得功能here

最佳答案

“ Func”在这里不正确:

guard let popup = self.popupFunc else {return}


从错误以及其余的讨论和代码,您似乎已经意味着:

guard let popup = self.popup else {return}


不过,尚不清楚popupFunc是什么。它已定义,您只需不在此处列出。也许您不小心允许自动完成功能选择了错误的属性?

10-07 18:16