最近在写一个LBS的项目的时候,由于考虑到适配iOS8,就将项目迁移到Xcode6.0.1上,出现了不能正常获取定位服务权限的问题。html
self.manger = [[CLLocationManager alloc]init]; self.manger.distanceFilter = kCLDistanceFilterNone; // meters self.manger.delegate = self; [self.manger requestAlwaysAuthorization]; self.manger.desiredAccuracy = kCLLocationAccuracyBestForNavigation; [self.manger startUpdatingLocation];
以上是iOS8以前的调用方法,当用户开启App的时候,会主动询问是否容许开启定位服务权限,如今在iOS8中,不管是模拟器仍是真机,都不进行提示,通过一番查阅官方文档-->LocationAwarenessPGIntroduction 发现,Apple在iOS8中增强了隐私访问权限的控制,必须调用新的方法来获取用户的容许ios
[self.manager requestWhenInUseAuthorization];
而且在info.plist文件中增长app
NSLocationWhenInUseUsageDescription BOOL YES
NSLocationAlwaysUsageDescription string “提示描述”
两个字段,在iOS8中才能进行正确的获取服务权限spa
在使用高德和百度地图的时候,出现了编译错误,大体缘由是由于Xcode6中默认为使用64编译形成了,若是解决,后期博文会进行更新code