gpt4 book ai didi

swift - 创建 MKPointAnnotation 对象的数组

转载 作者:行者123 更新时间:2023-11-30 10:12:35 27 4
gpt4 key购买 nike

当前正在使用 map View 并向 map 添加图钉。我知道如何使用 addAnotation() 方法向 map 添加单个点。现在,我尝试以最简单的方式向 MapView 添加多个点。我已经获取了数据(来自在线 XML 文件的纬度、经度和名称)并将其存储在一个数组中,现在我想将所有这些坐标+名称作为图钉添加到 map 中。为此,我声明了一个 MKPointAnnotation 对象数组,如下所示:

var pinsArray: [MKPointAnnotation] = []

然后为了将收集到的数据转储到我已执行以下操作:

    for i in 0...(myFeed.count-1) {

pinsArray[i].title = myFeed.objectAtIndex(i).objectForKey("NOMBRE")!.stringValue
pinsArray[i].coordinate = CLLocationCoordinate2D(latitude: myFeed[i].objectForKey("LATITUD")!.doubleValue, longitude: myFeed[i].objectForKey("LONGITUD")!.doubleValue)
pinsArray[i].subtitle = ""

mapView.addAnnotation(pinsArray[i])
}

但是当我运行应用程序时,我收到一条错误,指出数组索引超出范围( fatal error :数组索引超出范围)。我猜这是 pinsArray 声明上的问题,我真的不知道如何解决这个问题。

最佳答案

试试这个:

var pinsArray: [MKPointAnnotation] = []

for i in 0...(myFeed.count-1)
{
let pointAnnotation = MKPointAnnotation() // First create an annotation.

pointAnnotation.title = myFeed.objectAtIndex(i).objectForKey("NOMBRE")!.stringValue
pointAnnotation.coordinate = CLLocationCoordinate2D(latitude: myFeed[i].objectForKey("LATITUD")!.doubleValue, longitude: myFeed[i].objectForKey("LONGITUD")!.doubleValue)
pointAnnotation.subtitle = ""

pinsArray.append(pointAnnotation) // Now append this newly created annotation to array.
}

mapView.addAnnotations(pinsArray) // Add all the annotations to map view at once.

关于swift - 创建 MKPointAnnotation 对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32167599/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com