[英]Remove observer from 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)
}
但是编译器告诉我“无法使用参数列表'DropDownMenu'调用'removeObserver'”
我究竟做错了什么? 谢谢!
看一下文档 :该方法称为removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
。 因此,您需要执行以下操作:
dropDownMenu.removeObserver(self, forKeyPath: "frame")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.