Вопрос по iphone – Компас iPhone 3.0: как получить заголовок?

6

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

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

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

Ошибки:

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

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

Ваш Ответ

3   ответа
14

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

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

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

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

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

Гений, ты можешь прочитать название?
Ради Google: свойство headingAvailable устарело с iO4. Теперь есть метод класса headingAvailable, который возвращает логическое значение.
3

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

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

Спасибо, это было то, где я действительно запутался. Мне нужно узнать больше о typedefs, я думаю. Sean R
1

location? Удостоверитьсяlocation определяется как(CLLocationDirection *) а не просто(CLLocationDirection).

Похожие вопросы