2013-11-16 4 views
0
if (kCLAuthorizationStatusDenied) { 
    UIAlertView *servicesDisabledAlert = [[UIAlertView alloc] initWithTitle:@"Location Services Disabled" message:@" Please go to settings and enable them if you want to use all the features of this app " delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [servicesDisabledAlert show]; 
} 

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

Этот код помещается в методе application didFinishLaunchingWithOptions: AppDelegate.

ответ

3

Вы проверяете, что константа не ноль, который всегда будет истинным

Вы должны проверить текущее состояние авторизации:

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) 

редактировать: RazorSharp делает хорошую точку. Также вещи, которые имеют верблюд, но начинаются с нижнего регистра k, как правило, будут константами.

+2

Также обратите внимание, что 'kCLAuthorizationStatusDenied' - не единственная причина, по которой службы определения местоположения могут быть недоступны. Лучше проверить, не разрешены ли службы определения местоположения: '! = KCLAuthorizationStatusAllowed' –

Смежные вопросы