当前位置:首页 > 操作系统 > Ios

IOS version >=8.0 下CoreLocation定位问题

=8.0 下CoreLocation定位问题' />

最近发现执行startUpdatingLocation之后locationManager的代理方法都没有被调用,搜索了一下,得到以下信息:

1、在使用CoreLocation前需要调用如下函数【iOS 8及更高】:

  iOS 8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:

  (1)始终允许访问位置信息

  - (void)requestAlwaysAuthorization;

  (2)使用应用程序期间允许访问位置数据

  - (void)requestWhenInUseAuthorization;

  示例如下:

  self.locationManager = [[CLLocationManager alloc]init];

  _locationManager.delegate = self;

  _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){

      [_locationManager requestAlwaysAuthorization];//添加这句     }

  [_locationManager startUpdatingLocation];    

 

  2、在Info.plist文件中添加如下配置:

  (1)NSLocationAlwaysUsageDescription

  (2)NSLocationWhenInUseUsageDescription

  这两个键的值就是授权alert的描述(填不填没关系),示例配置如下[勾选Show Raw Keys/Values后进行添加]:

      技术分享

     

这样就可以正常定位了。

 

=8.0 下CoreLocation定位问题' ref='nofollow'>IOS version >=8.0 下CoreLocation定位问题

原文:http://www.cnblogs.com/karimlee/p/4877225.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!