2016-06-12 14 views
0

Ich habe eine Ansicht mit einem Dropdown-Menü als Unteransicht. Gerade jetzt bekomme ich einen Fehler, wenn die Ansicht freigegeben wird. „Wurde aufgehoben, während Schlüsselwert Beobachter noch registriert wurden mit ihm“Beobachter aus Unteransicht entfernen

In der Ansichten Klasse i der Beobachter bin Einstellung:

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) { 
    self.setNeedsDisplay() 
    if keyPath == "frame" { 
     // Set up DropdownMenu 
     self.dropDownBackground.frame.size.height = self.dropDownMenu.frame.maxY 
    } 
} 

und an die subview fügte hinzu:

dropDownMenu.addObserver(self, forKeyPath: "frame", options: .New, context: nil) 

So zu Vermeiden Sie den Fehler, den ich versuche zu tun:

Aber der Compiler sagt mir "Kann nicht aufrufen e 'removeObserver' mit einer Argumentliste von 'DropDownMenu' "

Was mache ich falsch? Vielen Dank!

Antwort

1

Haben Sie eine look at the documentation: Die Methode heißt removeObserver(_ observer: NSObject, forKeyPath keyPath: String). So müssen Sie tun:

dropDownMenu.removeObserver(self, forKeyPath: "frame") 
+0

Ich sehe! Ich danke dir sehr! Was ich gelesen habe, war, dass object.removeObserver (anotherObject) alle Observer-Verbindungen für die gegebenen Objekte entfernen würde. Ich denke, das war falsch. Also nochmals vielen Dank! – weka1

Verwandte Themen