【发布时间】:2020-07-29 00:54:55
【问题描述】:
我在 viewWillAppear 中添加一个观察者并在 viewWillDisappear 中删除它。我切换选项卡而不是手动向帖子引用添加一些内容,并且观察者仍在运行(我在块内有一个断点)。
移除观察者时我哪里出错了?
var postRefHandle: DatabaseHandle!
var query = DatabaseQuery()
var postsRefObserver = Database.database().reference().child("posts")
// called in viewWillAppear
func listen() {
self.query = postsRefObserver
.queryOrderedByKey()
.queryLimited(toLast: 1)
self.postRefHandle = self.query.observe(.childAdded) { (snapshot) in
// do something
}
}
// called in viewWillDisappear
func remove() {
if let postRefHandle = postRefHandle {
self.postsRefObserver.removeObserver(withHandle: postRefHandle)
}
self.postsRefObserver.removeAllObservers()
}
【问题讨论】:
标签: ios swift firebase-realtime-database