Instanz wurde freigegeben, während Schlüsselwertbeobachter noch bei ihr registriert waren

Ich habe eine UITableView.

Hier habe ich verschiedene Zellen. Jede Zelle hat ein Modell. Mit KVO und NotificationCenter hört die Zelle das Modell auf Änderungen. Wenn ich den ViewController verlasse, erhalte ich folgende Fehlermeldung:

An instance 0x109564200 of class Model was deallocated while key value observers were still registered with it. 
Observation info was leaked, and may even become mistakenly attached to some other object. 
Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
<NSKeyValueObservationInfo 0x109429cc0> (
<NSKeyValueObservance 0x109429c50: Observer: 0x10942d1c0, Key path: name, Options: <New: NO, Old: NO, Prior: NO> Context: 0x0, Property: 0x10968fa00>
)

In der Zelle mache ich das, wenn die Modelleigenschaft gesetzt / geändert wird:

[_model addObserver:self
         forKeyPath:@"name"
            options:0
            context:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(modelIsInvalid:)
                                             name:@"modelIsInvalid"
                                           object:_model];

Dann in der Freigabe der Zelle:

- (void)dealloc
{
    NSLog(@"DEALLOC CELL");
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [_model removeObserver:self forKeyPath:@"name"];
}

Im Modell überprüfe ich auch, wann es freigegeben wird:

- (void)dealloc
{
    NSLog(@"DEALLOC MODEL");
}

Alle Zellen werden vor allen Modellen freigegeben, aber trotzdem erhalte ich diesen Fehler. Ich bin mir auch nicht sicher, wie ich den im Fehler genannten Haltepunkt setzen soll.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage