顶级:
let ref = FIRDatabase.database().reference()
var handler:FIRDatabaseHandle!
Run Code Online (Sandbox Code Playgroud)
从屏幕上看到的视图:
self.handler = self.ref.child("Requests").observe(.value, with: {(snapshot) in
Run Code Online (Sandbox Code Playgroud)
最后:
override func viewDidDisappear(_ animated: Bool)
{
super.viewDidDisappear(animated)
self.ref.removeObserver(withHandle: self.handler)
self.ref.removeAllObservers()
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当在另一个视图中更改数据库时,仍会调用上面VC中的观察者.我明白我不应该同时删除,但我正在尝试一切.从断点我可以看到删除代码正在触发,我也可以看到观察者只被调用一次.
在删除观察者时我错过了什么?
您正在从错误的引用中删除观察者.
let ref = FIRDatabase.database().reference().child("Requests")
Run Code Online (Sandbox Code Playgroud)
尝试将此作为您的参考,然后:
self.handler = self.ref.observe(...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |