iOS 4.2上是否支持CLGeocoder?

时间:2012-01-08 16:40:17

标签: ios

当我看到苹果文档时,我有点困惑。

  • 一方面,他们有声明表明可以从 iOS 5以后 使用CLGeocoder。
  • 另一方面,他们的声明如下:“对于在 iOS 4.1及更早版本 上运行的应用程序,您必须使用MKReverseGeocoder类执行反向地理编码请求”
  • 那么4.2以上的范围怎么样?是否可以支持CLGeocoder?

有没有人通过他们使用4.1<的iPhone的第一手经验得到答案?版本<如果CLGeocoder能否正常工作,他们会安装5.0?

3 个答案:

答案 0 :(得分:1)

目前我打电话 [[CLGeocoder class] instancesRespondToSelector:@selector(reverseGeocodeLocation:completionHandler:)]

这总是在5.0以下的设备上返回false

我仍在试图找出原因,因为文档说明了其支持的4.1版本。

答案 1 :(得分:0)

以下是Location Awareness Programming Guide

的引用
  

在iOS中,您可以使用CLGeocoder或MKReverseGeocoder类   处理反向地理编码请求。 CLGeocoder是首选   要使用的类,可在iOS 5.0及更高版本中使用。但是,如果你的   应用程序必须在早期版本的iOS上运行,您可以使用   MKReverseGeocoder类。

MKReveresGeocoder仍在5.0中,但已被弃用。也就是说,您仍然可以使用它来简化代码中对多个iOS版本的支持。

答案 2 :(得分:0)

- (IBAction)geoCodeLocation:(id)sender{
    [self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler: 
     ^(NSArray *placemarks, NSError *error) {
         CLPlacemark *placemark = [placemarks objectAtIndex:0];
         NSLog(@"placemark %@",placemark);
         //String to hold address
         NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
         NSLog(@"addressDictionary %@", placemark.addressDictionary);

         NSLog(@"placemark %@",placemark.region);
         NSLog(@"placemark %@",placemark.country);  // Give Country Name 
         NSLog(@"placemark %@",placemark.locality); // Extract the city name 
         NSLog(@"location %@",placemark.name);
         NSLog(@"location %@",placemark.ocean);
         NSLog(@"location %@",placemark.postalCode);
         NSLog(@"location %@",placemark.subLocality);

         NSLog(@"location %@",placemark.location);
          //Print the location to console
         NSLog(@"I am currently at %@",locatedAt);

         //Set the label text to current location
         [locationLabel setText:locatedAt];

     }];
For more see property of CLPlacemark Link : http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLPlacemark_class/Reference/Reference.html (Support in iOS 5.0 because in previous MKReverseGeocoder is deprecated)