Мне нужна помощь, пытаясь разобраться в этом сбое.Crash on CLConnection :: sendMessageInternal
У меня есть общий сбой (# 1 авария, ~ 300 устройств, пострадавших), что, кажется, происходит, когда мое приложение проверяет статус авторизации CLLocation:
Метод «старт» выглядит следующим образом:
-(BOOL)start {
if ([self isDenied]) {
return NO;
} else {
_manager = [[CLLocationManager alloc] init];
_manager.delegate = self;
if ([_manager respondsToSelector:@selector(requestAlwaysAuthorization)] && [self isNotDetermined]) {
[_manager requestAlwaysAuthorization];
} else {
[self startUpdatingLocation];
}
return YES;
}
}
«isNotDetermined» метод, из которого приложение кажется, чтобы переключиться на другой поток и аварии, является:
- (BOOL)isNotDetermined {
return CLLocationManager.authorizationStatus == kCLAuthorizationStatusNotDetermined;
}
Возможно, также применим метод isDenied; в соответствии с документацией, то CLLocationManager не должна быть создана, если статус авторизации запрещен или ограничен:
- (BOOL)isDenied {
return CLLocationManager.authorizationStatus == kCLAuthorizationStatusDenied;
}
Может быть, что сбой приложения, потому что я создаю CLLocationManager в то время как authorizationStatus является ограниченным? Я ожидаю, что в этом случае произойдет сбой в методе init CLLocationManager.
Я получаю эту проблему в своем приложении, и поскольку iOS v9x эта авария значительно возрастает. Можете ли вы предложить решение этой проблемы? – user2955351