iPhone 3.0 Компас:как получить заголовок?
-
20-08-2019 - |
Вопрос
Я относительно новичок в 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)
, а не просто <=>.