CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
if (status == kCLAuthorizationStatusNotDetermined || status == kCLAuthorizationStatusDenied)
{
// 第一次安装,尚未做出选择
[self.manager requestWhenInUseAuthorization];
}
老师,checkLocationAuthorization 方法里的这段逻辑是不是可以归纳到代理方法里- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
里,因为怎么样最后都要去执行代理方法
展开
作者回复: 全新安装的时候,如果不主动调用requestWhenInUseAuthorization ,didChangeAuthorizationStatus应该是不会回调吧,除非在设置里进行主动的操作。didChangeAuthorizationStatus看文档应该是在有变化的时候回调,那么如果之前没有设置,一直是kCLAuthorizationStatusNotDetermined 应该不会有回调的,用户也就没有机会在App内进行设置了。