从 MKMapView 上的 CLLocationCoordinate2D 数组添加点不起作用

adding points from a CLLocationCoordinate2D array on MKMapView doesn't work

提问人:emsiloader 提问时间:4/9/2021 更新时间:4/10/2021 访问量:81

问:

我正在使用以下代码在按钮单击时将存储的引脚点添加到myMKMap;

func addPoint(){
    var count: Int = 0
    repeat {
        let pin = MKPointAnnotation()
        pin.coordinate = CLLocationCoordinate2D(mypointList[count])
        pin.title = placenames[count]
        pin.subtitle = placedetails[count]
        mymap.addAnnotation(pin)
        count += 1
    }
    while count < 3

mypointList[] 如下所示;

var mypointList = [CLLocationCoordinate2D(latitude: 37.19722, longitude: 25.82189),
           CLLocationCoordinate2D(latitude: 37.20103, longitude: 25.83009),
           CLLocationCoordinate2D(latitude: 37.20092, longitude: 25.81781),
           CLLocationCoordinate2D(latitude: 37.19989, longitude: 2259.82449)]
var placenames: [String] = ["sample place 1", "sample place 2", "sample place 3", "sample place 4"]
var placedetails: [String] = ["sample place detail 1", "sample place detail 2", "sample place detail 3", "sample place detail 4"]

但是当我运行应用程序时没有添加引脚。

顺便说一句,当替换为重复循环中的“pin.coordinate = CLLocationCoordinate2D(mypointList[count])”行时,以下代码有效;

pin.coordinate = CLLocationCoordinate2D(latitude: 37.1972, longitude: 25.2744)

数组有问题吗?

谢谢

mkmapview cllocationcoordinate2d

评论

0赞 emsiloader 4/9/2021
这也不起作用:pin.coordinate = CLLocationCoordinate2D(latitude: mypointList[count].latitude, longitude: mypointList[count].longitude)
0赞 emsiloader 4/9/2021
附加信息:当我添加 print() 函数以查看值是否正确收集时,它会正确显示坐标

答:

0赞 emsiloader 4/9/2021 #1

然而,这听起来像是一个有点奇怪的解决方案,我已经通过替换以下代码解决了我的问题:

pin.coordinate = CLLocationCoordinate2D(latitude: mypointList[count].latitude as! CLLocationDegrees, longitude: mypointList[count].longitude as! CLLocationDegrees)

它现在可以正确显示引脚。