Pergunta

Sou relativamente novo para o Objective-C e ainda não sei muito sobre isso, então peço desculpas pelo que provavelmente é uma pergunta realmente amadora.

Estou tentando obter o cabeçalho magnético da linha de linha e a diretoria de Cllocation. No entanto, estou recebendo erros de compilação para esta linha de código:

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

Os erros são:

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

Eu realmente não entendo o que estou fazendo de errado aqui. Por favor ajude!

Foi útil?

Solução

Aqui estão as etapas necessárias para usar a bússola.

1) Verifique a disponibilidade: se o headingAvailable A propriedade do gerente de localização é sim, então você pode usar a bússola.

2) Use o método do gerenciador de localização -(void) startUpdatingHeading Para começar a receber as informações que você está procurando

3) Na verdade, recupere essas informações usando o método delegado (não se esqueça de se definir como o delegado)

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

Espero que isto ajude.

Outras dicas

O magneticeading é do tipo cllocationDirection, que é simplesmente um typedef para o tipo de dados primitivo "duplo". No seu exemplo, você está tentando enviar uma mensagem para algo que não é um objeto! Você deve simplesmente formatar o duplo como assim:

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

Como você está alocando e inicializando location? Certificar-se de que location é definido como um (CLLocationDirection *) E não apenas um (CLLocationDirection).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top