Вопрос

я пытаюсь с помощью CLHeading получить значение компаса,

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
 if (curHeading != nil)
  [curHeading release];

 curHeading = newHeading;
 NSLog(@"%@",curHeading);
 [curHeading retain];
}

приведенное выше дает результат в виде -

Магнитное начертание 89,00 Истинное начертание + 103,27 точность 5,00 x + 1,375 y + 41,875 z +37.438 @ 2010-01-18 10:18:37 +0800

но мне нужно только значение magneticHeading, так что

я изменяю код следующим образом :

а)

newHeading.magneticHeading -> получен нулевой результат

б)

Новый заголовок.Истинный заголовок -> Принятый программой сигнал:“EXC_BAD_ACCESS”.

кто-нибудь может помочь, я просто пытаюсь другим возможным способом получить значение компаса.

Это было полезно?

Решение

magneticHeading и trueHeading оба относятся к типу CLLocationDirection, который на самом деле является двойным.Если вы хотите, чтобы NSLog() был двойным, вы должны использовать "%f" или "%.9f", а не "%@", который предназначен для объектов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top