7 Stimmen

iPhone - Eine Instanz der Klasse ... wird deallokiert, während die Schlüsselwertbeobachtung noch immer mit ihr registriert ist

Ich habe einen ViewController (mit einer MKMapView), die in, wegen der NavigationController geschoben wird. Ich habe also eine NavBar mit einem "Zurück"-Button. Wenn ich auf den Zurück-Button klicke, bekomme ich einen Fehler:

2010-01-11 18:05:35.273 TestApp[147:207] Eine Instanz 0x1758f0 der Klasse MKUserLocation wird deallociert, während noch Schlüsselwertbeobachter mit ihr registriert sind. Die Beobachtungsinformationen gehen verloren und können sogar fälschlicherweise mit einem anderen Objekt verknüpft werden. Setzen Sie einen Haltepunkt auf NSKVODeallocateBreak, um hier im Debugger anzuhalten. Hier ist die aktuelle Beobachtungsinformation: ( Context: 0x0, Property: 0x17d600> ) Programm hat Signal empfangen: "EXC_BAD_ACCESS".

Ich habe die viewDidLoad-Methode mit einem Observer implementiert:

- (void)viewDidLoad {
    mapView = (MKMapView*)self.view;
    mapView.delegate = self;
    mapView.mapType = MKMapTypeHybrid;
    mapView.showsUserLocation = YES;

    // ...

    [mapView.userLocation addObserver:self forKeyPath:@"location" options:0 context:NULL];
    [super viewDidLoad];

}

Meine Freigabe:

- (void)dealloc {
    [groupId release];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}

Kann mir jemand sagen, was hier falsch ist? Ich klicke auf die Schaltfläche "Zurück" in der NavBar und dann komme ich in die dealloc-Methode und dann schaltet es zurück zu den höheren ViewController und wirft diesen Fehler.

Vielen Dank im Voraus und mit freundlichen Grüßen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X