iPhone 에서 나침반을 구현하려고
할 때, 아래와 같은 작업을 수행하면 됩니다.
사용하고자 하는 클래스에서
CLLocationManagerDelegate의 프로토콜
사용을 선언합니다.
CLLocationManagerDelegate 에는 다음의
메소드가 있습니다.
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
이 메소드를 구현해 주고, CLLocationManager에서 startUpdatingHeading를 실행시켜주면
구현된 위의 메소드를 실행해서 Heading값을 가져오게 됩니다.
아래는 간단히 예제를 정리해 봅니다.
* header file
#import <XX.h>
#import <XXX.h>
@interface 클래스명 : 슈퍼클래스명 <CLLocationManagerDelegate>{
.....내용.....
}
* implementation file
....
- (void)viewDidLoad { //viewcontroller 라고 가정 CLLocationManager *locationManager=[[CLLocationManager alloc] init]; locationManager.delegate=self; locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters; [locationManager startUpdatingHeading];//heading값 호출 시작
.....내용.....
}
....
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{
headingData = newHeading.magneticHeading;//heading 값 중 자기장 값 가져오기
NSLog(@"Magnetic heading value : %f", headingData);//로그로 확인
...기타 추가 구현....
}
위와 같이 구현하면 headingData 에서 나침반의 각도값을 가져올 수 있습니다.