美文网首页iOS 道路之行iOS 应用层
iOS定位获取国家和城市

iOS定位获取国家和城市

作者: 陌上北辰 | 来源:发表于2017-06-28 15:53 被阅读973次

    1.在target->Build Phases->link Binary With Libraries中加入
    CoreLocation.framework
    2.在info.plist中加入
    Privacy - Location Always Usage Description //总是开启 Privacy - Location When In Use Usage Description //在使用期间开启
    3.在需要定位的页面加入头文件
    #import <CoreLocation/CoreLocation.h>
    #import <CoreLocation/CLLocationManagerDelegate.h>
    4.声明一个定位管理服务对象
    @property(nonatomic ,strong)CLLocationManager *locationManager;
    5.遵守定位管理服务协议
    CLLocationManagerDelegate
    6.在viewDidLoad中初始化定位服务对象- (void)viewDidLoad { [super viewDidLoad]; //定位服务初始化对象 _locationManager = [[CLLocationManager alloc]init ]; _locationManager.delegate = self; _locationManager.desiredAccuracy = kCLLocationAccuracyBest; _locationManager.distanceFilter = 1000.0f; if (![CLLocationManager locationServicesEnabled]) { NSLog(@"定位服务当前可能尚未打开,请设置打开!"); return; }

    1. 实现CLLocationManagerDelegate 协议方法:
      - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
      - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {
      CLLocation *currentLocation = [locations lastObject]; CLGeocoder *geocoder = [[CLGeocoder alloc]init]; //反地理编码 [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
      MMLog(@"--array--%d---error--%@",(int)placemarks.count,error);
      if (placemarks.count > 0) {
      CLPlacemark *placemark = [placemarks objectAtIndex:0];
      NSString *city = placemark.administrativeArea;//获取城市
      NSString *country = placemark.country;// 获取国家
      NSLog(@"位于:%@",city);
      MMLog(@"%@",placemark.addressDictionary[@"Name"]);
      }
      }];
      }
      `
      这只是作为真机测试

    相关文章

      网友评论

        本文标题:iOS定位获取国家和城市

        本文链接:https://www.haomeiwen.com/subject/djmucxtx.html