0

我试图将注释点加载到mapview其中我有单独的纬度数组和单独的经度数组这是我的代码

- (void)viewDidLoad

{

[super viewDidLoad];

delegate=[[UIApplication sharedApplication]delegate];

delegate.arrForLat=[[NSMutablearray alloc]initwithobjects:@"33.930216",@"33.939788",@"33.9272",@"33.902237"];

delegate.arrForLon=[[NSMutablearray alloc]initwithobjects:@"-118.050392",@"-118.076549",@"-118.065817",@"-118.081733‌​"];

     for (int i=0 ; i< delegate.arrForLat.count;i++)
     {
        annotationCoord.latitude = [[delegate.arrForLat objectAtIndex:i] doubleValue];
        annotationCoord.longitude = [[delegate.arrForLng objectAtIndex:i] doubleValue];

        MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
        annotationPoint.coordinate = annotationCoord;
        [MapView addAnnotation:annotationPoint];
    }

}

现在我只得到 1 个注释点,mapview但我有 4 个坐标。我不知道我犯了什么错误。

4

1 回答 1

0

啊,我想我看到了。你只有一个annotationCoord。在循环的第一次旅行中,您将其 lat 和 long 设置为 (33.930216,-118.050392) 并创建一个名为annotationPointpoint 其coordinate属性的新对象annotationCoord。然后在下一次循环中annotationCoord通过给它新的坐标来编辑。但它仍然是相同annotationCoord的,您添加到地图的注释仍在使用它,现在使用新坐标。

所以解决方案是每次循环都创建一个新的 CLLocationCoordinate2D 。

于 2013-05-15T20:34:57.263 回答