我在代码中删除Firebase观察者时遇到问题.这是结构的细分:
var ref = Firebase(url:"https://MY-APP.firebaseio.com/")
var handle = UInt?
override func viewDidLoad() {
handle = ref.observeEventType(.ChildChanged, withBlock: {
snapshot in
//Do something with the data
}
}
override func viewWillDisappear(animated: Bool) {
if handle != nil {
println("Removed the handle")
ref.removeObserverWithHandle(handle!)
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我离开viewcontroller时,我看到"Removed the handle"被打印出来,但当我返回viewcontroller时,我的观察者会为每个事件调用两次.当我离开并再次返回时,它被召唤三次.等等.为什么观察者没有被移除?
我也ref.setValue("some value")稍后在代码中调用,这可能与它有什么关系吗?