2015-08-21 19 views
5

Desidero utilizzare la bussola per l'aggiornamento dell'intestazione. Ma il mio didUpdateHeading non ha chiamato. Sono più recente in iOS. Si prega di aiutare qualsiasi aiuto sarebbe apperciated.didUpdateHeading not Called

@interface ViewController : UIViewController<CLLocationManagerDelegate> 
@property (nonatomic, retain) CLLocationManager  *locationManager; 
locationManager=[[CLLocationManager alloc] init]; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.delegate=self; 
    //Start the compass updates. 

    [locationManager startUpdatingHeading]; 

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
{ 
    NSLog(@"New magnetic heading: %f", newHeading.magneticHeading); 
    NSLog(@"New true heading: %f", newHeading.trueHeading); 
} 
+0

hai trovato qualche soluzione? –

+0

Ho lo stesso problema. –

risposta

0

Forse dimenticato delegato in .h flie <CLLocationManagerDelegate>

+0

è già stato aggiunto nell'interfaccia @, non importa quale file lo hai inserito in – Simon

2

Il codice che hai fornito (supponendo che non hanno cambiato nulla quando si incolla qui) manca una funzione o un codice di blocco per eseguire la prima parte , vi consiglio di metterlo nel vostro viewController init, in questo modo:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {   
     locationManager=[[CLLocationManager alloc] init]; 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
     locationManager.delegate=self; 
     //Start the compass updates. 

     [locationManager startUpdatingHeading]; 
    } 
    return self; 
} 
+0

Non funziona .... –

+0

ok, quindi cosa sta effettivamente succedendo? – Simon

+0

chiamata al metodo didUpdateToLocation ma didUpdateHeading non chiama mai –

0

State chiedendo l'autorizzazione per l'utilizzo di posizione? È necessario utilizzare

[locationManager requestWhenInUseAuthorization]; 

o

[locationManager requestAlwaysAuthorization]; 
+0

Sì, il mio delegato didUpdateToLocation funziona –