1

我正在使用以下代码从 CLGeocoder 接收地标,并且我只想在同一视图控制器上的另一个文本视图中显示城市。我将如何从这个数组中解析出城市?它不是 NSDictionary 或任何东西,所以我不知道该怎么做。

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

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
    NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!");
    if (error){
        NSLog(@"Geocode failed with error: %@", error);
        return;
    }
    NSLog(@"Received placemarks: %@", placemarks);
}];

我的给定地标的日志如下:

<__NSArrayM 0x1a0b3810>( 937–961 Sunnyvale Saratoga Rd, 937–961 Sunnyvale Saratoga Rd, Sunnyvale, CA 94087, United States @ <+37.35984860,-122.03235910> +/- 100.00m )

或者

<__NSArrayM 0x19576ac0>( 5600 Van Nuys Blvd, 5600 Van Nuys Blvd, Van Nuys, CA 91401-4602, United States @ <+34.17257000,-118.44794450> +/- 100.00m, 区域(标识符 <+34.17257044> 半径 -118. 57.64) <+34.17257001,-118.44794464> 半径 57.64m)

我怎样才能让 Sunnyvale 或 Van Nuys 部分显示为字符串?

4

1 回答 1

5

采用CLPlacemark's properties

CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:yourLocation completionHandler:^(NSArray *placemarks, NSError *error) {
  CLPlacemark *placemark = [placemarks objectAtIndex:0];
  NSString *strCity = [placemark locality];
  NSLog(@"%@",strCity);
}];
于 2012-11-27T08:30:15.703 回答