O MKMapView monitora constantemente o cabeçalho

Estou renderizando algum conteúdo em uma camada que fica em cima da minhaMKMapView. A coisa toda funciona muito bem, com exceção da rotação. Quando um usuário gira o mapa, preciso poder girar o que estou renderizando em minha própria camada.

A resposta padrão que encontrei é usar:

NSLog(@"heading: %f", self.mapView.camera.heading");

O problema é que o conteúdo da variável de cabeçalho é atualizado apenas quando o gesto de pinçar / girar termina, e não durante o gesto. Preciso de atualizações muito mais frequentes.

Não há propriedade de cabeçalho novisão do mapa em si.

Eu pensei que talvez usandoKVO assim:

    // Somewhere in setup
    [self.mapView.camera addObserver:self forKeyPath:@"heading" options:NSKeyValueObservingOptionNew context:NULL];


    // KVO Callback
    -(void)observeValueForKeyPath:(NSString *)keyPath
                         ofObject:(id)object
                           change:(NSDictionary *)change
                          context:(void *)context{

        if([keyPath isEqualToString:@"heading"]){
            // New value
        }
    }

No entanto, oKVO O ouvinte nunca dispara, o que não é surpreendente.

Existe um método que estou ignorando?