Вопрос

Я относительно новичок в Objective-C и еще мало что о нем знаю, поэтому прошу прощения за, вероятно, действительно дилетантский вопрос.

Я пытаюсь получить магнитный курс из CLHeading и CLLocationDirection.Однако я получаю ошибки компиляции для этой строки кода:

locationLabel.text = [[[location course] magneticHeading] stringValue];

Ошибки:

warning: invalid receiver type 'CLLocationDirection'  
error: cannot convert to a pointer type

Я не очень понимаю, что я здесь делаю не так.Пожалуйста помоги!

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

Решение

Вот шаги, необходимые для использования компаса.

1) проверьте доступность: если свойство headingAvailable диспетчера местоположений имеет значение YES, вы можете использовать компас.

2) используйте метод диспетчера местоположения -(void) startUpdatingHeading, чтобы начать получать информацию, которую вы ищете

3) фактически получить эту информацию с помощью метода делегата (не забудьте указать себя в качестве делегата)

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

Надеюсь, это поможет.

Другие советы

MagneticHeading имеет тип CLLocationDirection, который является просто определением типа для примитивного типа данных "double".В вашем примере вы пытаетесь отправить сообщение чему-то, что не является объектом!Вам следует просто отформатировать дубль следующим образом:

locationLabel.text = [NSString stringWithFormat:@"Heading %.3f", [[location course] magneticHeading]];

Как вы распределяете и инициализируете location? Убедитесь, что (CLLocationDirection *) определено как (CLLocationDirection), а не просто <=>.

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