Xcode6编译IOS8无法定位的问题解决

因为在IOS8 的定位里新增了两个方法:

- (void)requestWhenInUseAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);
- (void)requestAlwaysAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);

如果需要仅在前台定位,你在调用startUpdatingLocation  前需要调用requestWhenInUseAuthorization 
如果需要在前后台定位,你在调用startUpdatingLocation  前需要调用requestAlwaysAuthorization 
同时在plist文件中添加NSLocationWhenInUseUsageDescription或NSLocationAlwaysUsageDescription字段

这两个字段的值应该设置为YES

代码参考入下:
-(void) initLocation {
    self.locationManager=[[CLLocationManager alloc] init];
    self.locationManager.delegate=self;
    self.locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters;
    if(IsIOS8Later){
        [self.locationManager requestAlwaysAuthorization];
    }
    [self.locationManager startUpdatingLocation];
}
时间: 2024-10-06 02:53:52

Xcode6编译IOS8无法定位的问题解决的相关文章

iOS8下定位问题解决

项目是以前iOS7的,升级iOS8后,无法成功获取用户位置.后来才发现iOS8 使用定位需要在infoplist文件中加2个key,然后manager需要加一个方法,指定定位授权机制 ? 在plist文件里,加入: 然后在代码中写上 if (IOS_VERSION >= 8) { [_manager requestAlwaysAuthorization]; } ?iOS8定位问题解决.

iOS8后台定位

iOS8后台定位 测试环境 Xcode6.3.2,模拟器版本系统8.3,真机系统版本6.1.3 测试条件 设置BackgroundModes,使用requestWhenInUseAuthorization获取权限 设置BackgroundModes,使用requestAlwaysAuthorization获取权限 不设置BackgroundModes,使用requestWhenInUseAuthorization获取权限 不设置BackgroundModes,使用requestAlwaysAut

iOS8中定位服务的变化(CLLocationManager协议方法不响应,无法回掉GPS方法,不出现获取权限提示)

最近在写一个LBS的项目的时候,因为考虑到适配iOS8,就将项目迁移到Xcode6.0.1上,出现了不能正常获取定位服务权限的问题. self.manger = [[CLLocationManager alloc]init]; self.manger.distanceFilter = kCLDistanceFilterNone; // meters self.manger.delegate = self; [self.manger requestAlwaysAuthorization]; sel

Xcode6编译SDWebImage报错原因分析(SDWebImageDownloaderOperation.m错误)

之前写了一片关于编译SDWebImage报错解决方法的文章: http://blog.csdn.net/cuibo1123/article/details/39434015 结果很多人问这个问题的原因,那就在这里给大家说一说好了,分析思路一并送上(不过我还是建议大家自己动手去分析). 首先,如果新建工程,按照SDWebImage的方式声明输出口并引用: @interface ZCTest () @property (assign, nonatomic, getter = isExecuting)

iOS8 下定位失败问题

需要在Info.plist 里面添加: NSLocationWhenInUseUsageDescription NSLocationAlwaysUsageDescription 类型为 Boolean ,值为Yes: 然后在需要定位的地方添加以下代码: [self.locationManager requestWhenInUseAuthorization] [self.locationManager requestAlwaysAuthorization] 由于以上代码需要 iOS8以上,所以最好

iOS8 之后定位功能的更改

在iOS8之后,在使用之前的定位方法的话,程序接收不到应用调用系统服务的提示,需要做一下更改. 在iOS8中,定位的使用有两种,一种是在使用该应用的时候访问用户的位置信息,需要在另外一种是允许在并未使用应用程序的时候访问用户的位置信息.代码如下:    self.locationManager = [[CLLocationManager alloc] init];    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)

ios8 gps定位不好用

这样让iOS8正常使用定位功能呢? <1>你需要在info.plist表里面添加两条变量 在Info.plist中加入两个缺省没有的字段 NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription 这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语. locationManager = [[CLLocationManager alloc]init]; locationManager.dele

ios8 - CoreLocation定位服务的变化

在iOS8开发中,发现一个CoreLocation的使用问题,执行操作之后,不会调用到定位之后的delegate方法中. 根据文档,需要在使用CoreLocation前调用方法: [locationmanager requestAlwaysAuthorization]; [locationmanager requestWhenInUseAuthorization]; 并在Info.plist中加入两个字段(需手动输入添加,无选择项) NSLocationAlwaysUsageDescriptio

IOS开发教程--Xcode6,CLLocationManager无法定位解决方案

iOS8 之后要自己写定位授权,否则就没有定位权限. 调用代码: if ([[[UIDevice currentDevice] systemVersion] doubleValue] > 8.0) { //设置定位权限 仅ios8有意义 [locationManager requestWhenInUseAuthorization];// 前台定位 //  [locationManager requestAlwaysAuthorization];// 前后台同时定位 } [locationMana