попробовать этот код ниже:
сначала добавьте структуру в свой проект CoreLocation.Framework после добавления инициализации объекта CLLocationManager и импорта файла заголовка CLLocationManager.
Yourviewcontroller.h
#import <CoreLocation/CoreLocation.h>
@interface Yourviewcontroller :UIViewController <CLLocationManagerDelegate>
{
CLLocationManager *locationManager;
}
Yourviewcontroller.m
locationManager=[[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
//Start the compass updates.
[locationManager startUpdatingHeading];
функция добавить для получения направления тока
-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
float mHeading = newHeading.magneticHeading;
if ((mHeading >= 339) || (mHeading <= 22)) {
//[direction setText:@"N"];
}else if ((mHeading > 23) && (mHeading <= 68)) {
//[direction setText:@"NE"];
}else if ((mHeading > 69) && (mHeading <= 113)) {
//[direction setText:@"E"];
}else if ((mHeading > 114) && (mHeading <= 158)) {
//[direction setText:@"SE"];
}else if ((mHeading > 159) && (mHeading <= 203)) {
//[direction setText:@"S"];
}else if ((mHeading > 204) && (mHeading <= 248)) {
//[direction setText:@"SW"];
}else if ((mHeading > 249) && (mHeading <= 293)) {
// [direction setText:@"W"];
}else if ((mHeading > 294) && (mHeading <= 338)) {
// [direction setText:@"NW"];
}
}
Примечание: компас работает только реальное iphone устройство не работает в симуляторе iphone ..!
Надейтесь, что эта ссылка может решить вашу проблему должным образом, http://stackoverflow.com/questions/412256/can-the-iphone-determine-if-youre-facing-north-south-east-or- west –
Возможный дубликат [Как получить указания на iPhone или iPad] (http://stackoverflow.com/questions/2630789/how-to-get-directions-on-the-iphone-or-ipad) – Suhaib