Swift循环遍历数组

时间:2015-12-03 10:09:48

标签: ios xcode swift nsmutablearray

我正在尝试使用以下代码循环遍历带坐标的数组并在地图上显示标记:

                for index in 0...3 {

                    let latitude: Double = latCoordinate.objectAtIndex(index) as! Double
                    let longitude: Double = longCoordinate.objectAtIndex(index) as! Double

                    let  position = CLLocationCoordinate2DMake(latitude, longitude)
                    print([latitude],[longitude])
                    let marker = GMSMarker(position: position)
                    marker.title = "Hello World"
                    marker.map = self.mapView

                }

但我只是在地图上找到一个标记,它应该是4.为什么我在地图上看不到其他标记?

1 个答案:

答案 0 :(得分:0)

您的代码看起来很适合显示标记,但您确定坐标是否正确? - 只是再次查看评论,问题在于如何填充数组,如果您的数组中只有一个坐标,那么您只会在地图上看到一个标记。

我的应用程序中的代码将所有坐标添加到GMSCoordinateBounds,然后将GMSMapView摄像机设置为所有坐标的边界 - 因此所有内容都应在显示的地图上可见。

func plotAll(){
    let bounds = GMSCoordinateBounds.init()
    for property in fetchedResultsController.fetchedObjects!
    {
        let capitalAsset : CapitalAsset = property as! CapitalAsset
        let marker = GMSMarker.init()
        marker.draggable = false
        marker.snippet = capitalAsset.address
        let location = CLLocationCoordinate2DMake(Double(capitalAsset.latitude!), Double(capitalAsset.longitude!))
        marker.position = location
        marker.map = mapView
        // Update bounds to include marker
        bounds.includingCoordinate(marker.position)
    }

    let camera = mapView.cameraForBounds(bounds, insets:UIEdgeInsetsZero)
    mapView.camera = camera;

}

希望有所帮助。