2010-01-12 6 views
2

Я разрабатываю приложение компаса для iphone 3GS. Я использовал рамки CoreLocation для метод компаса я использовал ...iPhone Compass Programming

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 

... метод для получения заголовка.

Мой вопрос заключается в том, как получить значение типа «315 ° СW, 90 ° E, 140 ° SE» без перемещения iphone. У меня нет 3GS iphone, поэтому, если у кого-нибудь есть идеи, пожалуйста, помогите.

спасибо.

+1

Не рекомендуется разрабатывать приложение для устройства, которого у вас нет, и он не может тестировать. Если вы строите это для iPhone 3G S, вам нужно его получить. –

+0

Я не уверен, что понимаю, о чем вы спрашиваете. Вы можете немного уточнить свой вопрос? Если вы спрашиваете, как извлечь заголовок компаса из объекта CLHeading, взгляните на его свойства trueHeading или magnetHeading. –

+0

Нет, у меня есть стрелка, указывающая прямо, когда пользователь нажимает кнопку запуска, а затем начинается событие компаса, и стрелка перемещается в фиксированную точку, такую ​​как 315 ° СЗ, 90 ° Е, 140 ° SE и т. Д., Как я должен определять координаты которые приведены выше. Спасибо. – shivang

ответ

1

Я использую этот фрагмент непосредственно перед классом @implementation, где мне нужны мои поддельные заголовки и данные о местоположении.

#if (TARGET_IPHONE_SIMULATOR) 
@interface MyHeading : CLHeading 
    -(CLLocationDirection) magneticHeading; 
    -(CLLocationDirection) trueHeading; 
@end 

@implementation MyHeading 
    -(CLLocationDirection) magneticHeading { return 90; } 
    -(CLLocationDirection) trueHeading { return 91; } 
@end 

@implementation CLLocationManager (TemporaryLocationFix) 
- (void)locationFix { 
    CLLocation *location = [[CLLocation alloc] initWithLatitude:55.932 longitude:12.321]; 
    [[self delegate] locationManager:self didUpdateToLocation:location fromLocation:nil]; 

    id heading = [[MyHeading alloc] init]; 
    [[self delegate] locationManager:self didUpdateHeading: heading]; 
} 

-(void)startUpdatingHeading { 
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; 
} 

- (void)startUpdatingLocation { 
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; 
} 
@end 
#endif