0
我有一个视图,它有一个下拉菜单作为子视图。现在,当视图被释放时,我正在收到一个错误。 “被释放,而键值观察家仍用它注册”从子视图删除观察者
在视图类我设置的观察者:
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)
}
但编译器告诉我“不能invok e'removeObserver'与参数列表'DropDownMenu'“
我在做什么错?谢谢!
我明白了!非常感谢!我读的是object.removeObserver(anotherObject)会删除给定对象的所有观察者连接。我猜这是错误的。再次感谢! – weka1