从安装地图的数组中检索信息(MapKit)

时间:2017-02-09 11:35:12

标签: ios objective-c iphone swift swift3

我有一个包含多个词典的数组。在每本字典中我都有一些信息。我想在地图上为数组中的每个项添加一个点。除了didSelectForAnnotation方法我没有任何东西,如何将数组作为该对象的某些信息进入?在表中,我将使用indexPath,但注释没有indexPath。有解决方案吗?

1 个答案:

答案 0 :(得分:1)

如果要与MKPointAnnotation一起设置自定义信息,则需要对其进行子类化并创建一个自定义属性,您可以使用后者将其与其他数组对象区分开来。

class MyAnnotation: MKPointAnnotation {

     var arrayIndex: Int!
}

现在您需要使用MyAnnotation类创建注释,并使用您要创建注释的数组索引设置arrayIndex。

for (index,item) in yourArray.enumerated() {
    let annotation = MyAnnotation()

    //Set arrayIndex for your annotation
    annotation.arrayIndex = 1    

    //Set coordinate and title from your array
    annotation.coordinate = locations
    annotation.title = "Zaid Homes"
    annotation.subtitle = "Hay aljameaa"
    map.addAnnotation(annotation)
}

现在,在mapView的didSelect view方法中,您可以获得该索引。

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    if let annotation = view.annotation as? MyAnnotation {
        print(annotation.arrayIndex)
        print(yourArray[annotation.arrayIndex])
    } 
}