ios – 从CLGeocoder获取当前城市和国家?

前端之家收集整理的这篇文章主要介绍了ios – 从CLGeocoder获取当前城市和国家?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在互联网上试图找出如何从CLGeocoder获得城市和国家.我可以很容易地获得经度和纬度,但是我需要城市和国家的信息,而且我仍然运用不客气的方法和任何想法?它基本上需要获取位置,然后为该国家提供NSString,并为该城市提供NSString,因此我可以使用它们查找更多信息或将其放在标签等上.

解决方法

您需要修改您的术语 – CLGeocoder(和大多数地理编码器)不会给您一个“城市”的一切 – 它使用诸如“管理区域”,“次级管理区域”等术语.CLGeocoder对象将返回一系列CLPlacemark对象,然后您可以查询所需的信息.您启动一个CLGeocoder并调用具有位置和完成块的reverseGeocodeLocation函数.以下是一个例子:
if (osVersion() >= 5.0){

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

    [reverseGeocoder reverseGeocodeLocation:self.currentLocation completionHandler:^(NSArray *placemarks,NSError *error)
     {
         DDLogVerbose(@"reverseGeocodeLocation:completionHandler: Completion Handler called!");
         if (error){
             DDLogError(@"Geocode Failed with error: %@",error);
             return;
         }

         DDLogVerbose(@"Received placemarks: %@",placemarks);


         CLPlacemark *myPlacemark = [placemarks objectAtIndex:0];
         NSString *countryCode = myPlacemark.ISOcountryCode;
         NSString *countryName = myPlacemark.country;
         DDLogVerbose(@"My country code: %@ and countryName: %@",countryCode,countryName);

     }];
    }

现在请注意,CLPlacemark没有“city”属性.属性的完整列表可以在这里找到:CLPlacemark Class Reference

猜你在找的iOS相关文章