didRequestRegionState не работает на iOS 13 - PullRequest
0 голосов
/ 31 октября 2019

Я работал над приложением, регистрирующим регион с основным местоположением для мониторинга.

self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:proximtyId] identifier:@"com.hospitalintegration.region" ];
        if(self.beaconRegion){
            [self.locationManager startMonitoringForRegion:self.beaconRegion];
            [self.locationManager startRangingBeaconsInRegion:self.beaconRegion];
        }
        [self.locationManager startUpdatingLocation];

Затем вызывается didStartMonitoringForRegion, и я запрашиваю состояние региона в этом методе:

- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {
    if(self.beaconRegion){
        [self.locationManager requestStateForRegion:self.beaconRegion];
        [self.locationManager startRangingBeaconsInRegion:self.beaconRegion];
    }
}

в iOS 12, это, кажется, работает абсолютно нормально, вызывается didDetermineState, и я получаю мойжелаемый результат. но на iOS 13 didDetermineState не вызывается, и всегда MonitoringDidFailForRegion вызывается с ошибкой. Приложение превысило максимальное количество регионов, которые оно может контролировать одновременно. Мониторинг также может быть неудачным, если радиус области слишком велик.

То, что я проверил, здесь не проблема. Регион небольшой, так как он работает на iOS 12, и я отслеживаю только 1 регион, я проверил количество отслеживаемых регионов, и он равен 1. Итак, я не понимаю, что здесь не так.

...