在ios7之前,我们进入程序提示用户开启定位是这样做的,如下:
,,,,,* locationManager=[[]];
//locationManager.delegate=_instance;
desiredAccuracykCLLocationAccuracyBest
,,,,locationManager。=,
//定位服务是否可用
locationServicesEnabled
//是否具有定位权限
,,,,状态=[];
,,,,(!使| | status<) {
,,,,,,
,,,,,,[locationManager];
,,,,}
但是到了ios8后,发现定位压根就不起作用,老是提示:
ios8定位解决如下:
先在NSLocationWhenInUseUsageDescription
在. h里面
,继承代码
,,定义* _locationManager;
在。m里面定义:
- () startTrackingLocation {
CLAuthorizationStatusCLLocationManager kCLAuthorizationStatusNotDetermined
,,,,,
requestAlwaysAuthorization
,,,,
//[_locationManager requestWhenInUseAuthorization];
,,}
kCLAuthorizationStatusAuthorizedWhenInUsekCLAuthorizationStatusAuthorizedAlways startUpdatingLocation
,,}
}
//实现代码回调
# pragma马克- CLLocationManager委托方法
——() locationManager:(*)经理didChangeAuthorizationStatus:地位(){
,,(状态){
kCLAuthorizationStatusAuthorizedAlways
kCLAuthorizationStatusAuthorizedWhenInUse
@“授权,开始跟踪位置”
startTrackingLocation
,,,,,,,
kCLAuthorizationStatusNotDetermined
requestAlwaysAuthorization
,,,,,,,
,,,,:
,,,,,,,
,,}}
调用如下:,,
,,,(){
,,,,=[[]];
_locationManager startTrackingLocation
,,}
最后实现效果如下图,点击允许即可定位了: