У меня есть представление, которое имеет dropdownmenu в качестве подзаголовка. Прямо сейчас я получаю сообщение об ошибке, когда представление освобождается. «Было высвобожден в то время как наблюдатели ключевого значения по-прежнему зарегистрированы с ним»Удалить наблюдателя из subview
В классе просмотры я устанавливаю наблюдатель:
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
}
}
И добавив его в подвид:
dropDownMenu.addObserver(self, forKeyPath: "frame", options: .New, context: nil)
Так избегайте ошибки, которую я пытаюсь сделать:
deinit {
dropDownMenu.removeObserver(self)
}
Но компилятор говорит мне: «Невозможно вызвать e 'removeObserver' со списком аргументов 'DropDownMenu' '
Что я делаю неправильно? Спасибо!
Я вижу! Спасибо огромное! Я читал, что object.removeObserver (anotherObject) удалит все соединения наблюдателей для данных объектов. Наверное, это было неправильно. Так что еще раз спасибо! – weka1