observadores de valores-chave ainda estavam registrados quando o controlador é desalocado

Adicionei um observador no código e o removi em dealloc e viewWillDisappear, mas ainda estou recebendo um erro informando

*** Finalizando o aplicativo devido à exceção não capturada 'NSInternalInconsistencyException', motivo: 'Uma instância 0x167e5980 da classe MyController2 foi desalocada enquanto os observadores de valores-chave ainda estavam registrados com ele.

Current observation info: <NSKeyValueObservationInfo 0x16719f90> (
<NSKeyValueObservance 0x16719fb0: Observer: 0x167e5980, Key path: dataContainer.report, Options: <New: YES, Old: YES, Prior: NO> Context: 0x0, Property: 0x1677df30>
)'

Eu criei um controlador,MyController e derivar um novo controladorMyController2 a partir dele. Agora eu adicionei o KVO noMyController2.

- (void)viewDidLoad {
    [super viewDidLoad];
    [self addObserver:self forKeyPath:@"dataContainer.report" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
}

Em seguida, em observeValueForKeyPath: -

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {

    id oldC = [change objectForKey:NSKeyValueChangeOldKey];
    id newC = [change objectForKey:NSKeyValueChangeNewKey];

    if([keyPath isEqualToString:@"dataContainer.report"]) {
        if (oldC != newC) {
            //Remove Observer

            [self removeObserver:self forKeyPath:@"dataContainer.report" context:nil];
            [self updateDataContainer];
            [self reportView];
        }
    }
}

Então tentei remover o observador no viewWillDisappear e dealloc:

- (void)dealloc {
    @try{
        [self removeObserver:self forKeyPath:@"dataContainer.report" context:nil];
    }@catch(id anException){
    }
}

-(void) viewWillDisappear:(BOOL)animated{
    @try{
        [self removeObserver:self forKeyPath:@"dataContainer.report" context:nil];
    }@catch(id anException){
    }
    [super viewWillDisappear:animated];
}

Eu olhei para a perda de posts, todos eles dizem uma coisa que você precisa remover o observador. Eu tentei remover o observador de ambos, mas ainda estou recebendo o problema.

questionAnswers(3)

yourAnswerToTheQuestion