使用带有自定义参数的协议功能

时间:2018-07-17 10:18:04

标签: swift xcode mkmapview protocols

我想使用mapView协议中的MkmapviewDelegate函数,但不要让注解是MKAnnotation变量,而是希望它来自自{{ 1}}。

问题是,当我编写MKAnnotation时,使用自定义类中的方法会出现错误,而当我编写"viewFor annotation: MKAnnotation"时,程序将不使用此方法并且我也不会得到什么我想要。

注意:最终目标是为动态创建的注释显示自定义图像。

谢谢您的回答

功能: The function

1 个答案:

答案 0 :(得分:0)

您可以像这样保护viewFor annotation: MKAnnotation中的自定义类:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotation? {
    // we check if the annotation is of type MYCLASS, otherwise we make an early exit with nil
    guard let myClass = annotation as? MYCLASS else {
        return nil
    }
    if myClass.getState() == ... {}
}

然后您可以再次使用自定义类方法