コンパスアプリケーションを作成していますが、関数[localManager startUpdatingHeading]
が呼び出されると、関数が自動的に呼び出されます
-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
しかし、2 番目の関数は呼び出されないため、プログラムは機能しません。このコードをデバイスで実行しましたが、何も起こりませんでした。私を助けてください。
- (void)viewDidLoad
{
[super viewDidLoad];
CLLocationManager *locaManager = [[CLLocationManager alloc] init];
locaManager.desiredAccuracy = kCLLocationAccuracyBest;
locaManager.delegate = self;
locaManager.headingFilter = .5;
if ([CLLocationManager locationServicesEnabled] && [CLLocationManager
headingAvailable]) {
[locaManager startUpdatingHeading];
[locaManager startUpdatingLocation];
} else {
NSLog(@"Error");
}
}
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
if (newHeading.headingAccuracy > 0) {
float magneticHeading = newHeading.magneticHeading;
float trueHeading = newHeading.trueHeading;
label2.text = [NSString stringWithFormat:@"%f", magneticHeading];
label1.text = [NSString stringWithFormat:@"%f", trueHeading];
float heading = -1.0f * M_PI * newHeading.magneticHeading / 180.0f;
imagen.transform = CGAffineTransformMakeRotation(heading);
}
}