码迷,mamicode.com
首页 > 移动开发 > 详细

xcode6打开以前工程在Ios8系统无法定位解决方案

时间:2014-10-25 22:56:48      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   color   io   os   ar   for   sp   

xcode6打开以前xcode5工程,发现程序不能定位,包括iOS8模拟器,真机都不能定位?代码经检查没有问题,后来查找苹果Ios8升级差异策略,发现Ios8对定位处理做了一些调整,工程升级到xcode6编译时需要iOS8 要自己写授权,不然没权限定位。修改点如下:
      1: 在Info.plist中加入两个缺省没有的字段 ,值均设置为YES
       NSLocationAlwaysUsageDescription
      NSLocationWhenInUseUsageDescription
2:启动定位代码[locationManager startUpdatingLocation] 前,需要增加Ios8判断处理

  if ([[[UIDevice currentDevice] systemVersion] doubleValue] > 8.0) {
            //设置定位权限 仅ios8有意义
            [locationManager requestAlwaysAuthorization];
        }
        [locationManager startUpdatingLocation];

3:实现 CLLocationManagerDelegate 代理 - (void)locationManagerbubuko.com,布布扣CLLocationManager *)manager didChangeAuthorizationStatusbubuko.com,布布扣CLAuthorizationStatus)status 方法,注意:如不增加该代理方法实现,会导致首次调用定位时候无法弹出 ”程序启动定位提示框“ 导致定位失败

#pragma mark - 授权定位
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
    
    NSLog(@"调用代理");
    switch (status) {
            
        case kCLAuthorizationStatusNotDetermined:{
            
            if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
                [locationManager requestWhenInUseAuthorization];
            }
        }
            break;
        default:{
            
        }
            break;
    }
}

 

xcode6打开以前工程在Ios8系统无法定位解决方案

标签:des   style   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/ernao/p/4051077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!