Iphone 如何检测用户是否拒绝使用我的默认位置?

Iphone 如何检测用户是否拒绝使用我的默认位置?,iphone,ios,objective-c,core-location,Iphone,Ios,Objective C,Core Location,可能重复: 如果用户在iOS应用程序中拒绝“使用我的默认位置”,我将如何检测 我想根据他们的选择为他们提供不同的视图控制器 谢谢 执行CLLocationManagerDelegatedelegate 有关详细说明,请参阅。为我工作。希望对您有所帮助。您可以尝试以下方式: #if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_4_2 if ([CLLocationManager locationServicesEnabled] &

可能重复:

如果用户在iOS应用程序中拒绝“使用我的默认位置”,我将如何检测

我想根据他们的选择为他们提供不同的视图控制器

谢谢

执行
CLLocationManagerDelegate
delegate
有关详细说明,请参阅。为我工作。希望对您有所帮助。

您可以尝试以下方式:

 #if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_4_2
    if ([CLLocationManager locationServicesEnabled] && ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized))  
 #else 
    if ([CLLocationManager locationServicesEnabled])    
 #endif

为此,您需要实现以下委托方法:

- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
{
    if([error code]== kCLErrorDenied)
        self.locationDenied = YES;

        switch ([error code]) {
        // "Don't Allow" on two successive app launches is the same as saying "never allow". The user
        // can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings.
        case kCLErrorDenied:
            [appDelegate showAllowGPSLocationView];
        default:
            break;
    }

    self.locationDefined = NO;
}
您可以在AppDelegate中创建方法“ShowAllowGPLocationView”。并向用户显示视图,您需要访问GPS位置

希望它能解决你的问题


快乐编码

我为此制作了一个函数,它通过两种方式解决了问题:第一种是检查位置服务是否启用(第一种是设备上的位置设置),第二种是检查用户是否授权了您的应用程序

- (bool)locationAvailable
{
    if (!([CLLocationManager locationServicesEnabled]) || ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied))
        return FALSE;
    else
        return TRUE;
}
- (bool)locationAvailable
{
    if (!([CLLocationManager locationServicesEnabled]) || ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied))
        return FALSE;
    else
        return TRUE;
}