第一种在CLLocationManager的代理事件中判断段
[CLLocationManager locationServicesEnabled]//只是判断是否开启定位
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
NSString *errorString;
[manager stopUpdatingLocation];
NSLog(@"Error: %@",[error localizedDescription]);
switch([error code]) {
case kCLErrorDenied:{
//用户没有开启应用的定位服务
//Access denied by user
errorString = @"Access to Location Services denied by user";
//Do something...
self.isAppLocationOpen = NO;
}
break;
case kCLErrorLocationUnknown:
//未知错误
//Probably temporary...
errorString = @"Location data unavailable";
//Do something else...
break;
default:
errorString = @"An unknown error has occurred";
break;
}
NSLog(@"errorString: %@",errorString);
}
第二种判断是否开启定位,和应用定位
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
if (kCLAuthorizationStatusRestricted == status ||kCLAuthorizationStatusDenied == status) {
//没有打开定位服务或应用定位
}