2010-12-27 12 views
2

Ich versuche, die Funktion locationServicesEnabled zum Funktionieren zu bringen ... aber mein UIAlert zeigt sich, egal ob locationServices aktiviert ist oder nicht! Wie bekomme ich das richtig?locationServicesEnabled in iOS> 4.0 zeigt immer UIAlert

@synthesize locationServicesEnabled 
    -(void)viewDidLoad { 
    [super viewDidLoad]; 

    if(![CLLocationManager locationServicesEnabled]) { 
     self.locationManager = [[[CLLocationManager alloc] init] autorelease]; 
     locationManager.delegate = self; 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
     [locationManager startUpdatingLocation]; 
     } else { 
      [[[[UIAlertView alloc] initWithTitle:@"Location services." 
             message:@"Location services are disabled." 
             delegate:nil 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil] autorelease] show];  
     } 
    } 

Vielen Dank im Voraus!

+0

Ist das eine Unteransicht? –

+0

yeah, es ist eine Unteransicht – Krismutt

Antwort

3

Sieht aus wie Ihr Zustand rückwärts ist. Es heißt momentan "wenn NICHT location-services-enabled, dann starte den elseal alert".

Ändern der if zu:

if([CLLocationManager locationServicesEnabled]) 

die ! entfernen.

+0

funktioniert immer noch nicht ... Versucht, die Warnung auf die if-Anweisung und den Locationmanager auf die else-Anweisung zu setzen. Ich habe auch das "!" Entfernt. Es zeigt immer noch einen Alarm an, unabhängig davon, was meine Einstellungen für die Standortdienste sind. – Krismutt

+0

Testen Sie die Standortdienste ein- oder aus? Die Warnung wird möglicherweise nicht so angezeigt, wie Sie es von viewDidLoad aus tun. Zeigen Sie es mit performSelector: withObject: afterDelay: oder verschieben Sie den Code in viewDidAppear. – Anna

+0

Wie zeige ich es mit dem performSelector: withObject: afterDelay? – Krismutt