确定用户是否拒绝CoreLocation权限

是否有可能以编程方式确定用户拒绝使用其位置的权限?

其次,如果用户拒绝了权限,是否可以重新提示用户?

您可以使用CLLocationManager上的authorizationStatus类方法来确定您的授权状态。 这将返回一个CLAuthorizationStatus ,其定义如下:

 typedef enum { kCLAuthorizationStatusNotDetermined = 0, kCLAuthorizationStatusRestricted, kCLAuthorizationStatusDenied, kCLAuthorizationStatusAuthorized } CLAuthorizationStatus; 

当您尝试启动位置pipe理器时,如果授权状态不确定,系统将提示用户授权您的应用程序。

此外,您可以检查locationServicesEnabled类方法以确定系统范围是否启用位置。

此外 – 如果locationServicesEnabled返回NO,并且您尝试启动位置服务,则系统将提示用户确认是否应重新启用位置服务。