如何从地理编码器值将纬度和经度值添加到 nsmutablearray?

how to add Latitude and longitude value to nsmutablearray from geocoder values?

我想从地理编码器值向 NSMutableArray 添加纬度和经度值,但我在图像中遇到错误。

-(void) loadDataArray:(NSString *) text{

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

[geocoder geocodeAddressString:[NSString stringWithFormat:@"%@",text] completionHandler:^(NSArray* placemarks, NSError* error){


    for (CLPlacemark* aPlacemark in placemarks)
    {
        NSLog(@"aPlace: %@",aPlacemark.country);
        NSLog(@"MyPlace: %@",userCountry);
        //if ([aPlacemark.country isEqual:userCountry]) {

            [dataArray addObject:aPlacemark];
        //NSNumber *lat = [NSNumber numberWithDouble:aPlacemark.location.coordinate.latitude];
        //NSNumber *lon= [NSNumber numberWithDouble:aPlacemark.location.coordinate.longitude];


        [dataArrayLat addObject:aPlacemark.location.coordinate.latitude];
        [dataArrayLon addObject:aPlacemark.location.coordinate.longitude];

            //NSLog(@" %@",lat);
        //}
        //else{
          //  NSLog(@"Bulunamadı");

        //}

    }
    [searchTable reloadData];
}];

}

感谢回复。

编辑

我想用于搜索位置并显示 tableview.I select tableview 项目,然后在 Apple Map 上显示位置。

您正在尝试向 NSMutableArray 添加基元,但它只会容纳对象。

最快的解决方法是将您的 CLLocationDegrees (这只是一个 double)包裹在一个 NSNumber 中,就像这样:

[dataArrayLat addObject:@(aPlacemark.location.coordinate.latitude)];
[dataArrayLon addObject:@(aPlacemark.location.coordinate.longitude)];

不过请记住,如果您想再次访问 double,您必须稍后解包该值。你会这样做:

NSNumber *num = dataArrayLat[someIndex];
double latitude = num.doubleValue;