Цель C - сбой CLLocationManager - PullRequest
       25

Цель C - сбой CLLocationManager

1 голос
/ 18 ноября 2011

Я получаю сообщения от пользователей о том, что мое приложение вылетает при запуске.

Итак, я получил отчет о сбое.Пользователь работает на iOS 4.1.

Журнал аварий ниже:

Thu Nov 17 12:23:49 unknown AppName[1481] <Error>: +[CLLocationManager authorizationStatus]: unrecognized selector sent to class 0x3e2ee618
Thu Nov 17 12:23:49 unknown AppName[1481] <Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[CLLocationManager authorizationStatus]: unrecognized selector sent to class 0x3e2ee618'

Кажется, что-то не так с моим кодом, вот что у меня есть

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    // 4.2 and below

    NSLog(@"locationManager error = %@", error);
    if ([error code] != kCLErrorLocationUnknown) {
        [self stopUpdatingLocation:NSLocalizedString(@"Error", @"Error")];
    }
}

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
    // 4.2 & above
    NSLog(@"authorization change = %i", status);
}

- (void)stopUpdatingLocation:(NSString *)state {
    NSLog(@"stop updatinglocation = %@", self.bestEffortAtLocation);
    [locationManager stopUpdatingLocation];
    locationManager.delegate = nil;
}

Пожалуйста, просветите.

Спасибо,
Тройник

1 Ответ

7 голосов
/ 18 ноября 2011

Я не думаю, что ошибка в коде, который вы перечислили, где-то вы пытаетесь получить доступ к
+[CLLocationManager authorizationStatus], который является методом 4.2+, так что неудивительно, что там есть сообщение об ошибке, у вас есть несколько вариантов. Вы можете сначала установить флажок RespondsToSelector: или запустить код внутри блока @try {}. любой должен удерживать вас от краха.

...