【发布时间】:2017-01-03 18:21:59
【问题描述】:
这是一个针对 Swift、Firebase 和 Geofire 的问题。
我想知道如何在 Swift 中为以下观察者移除 GeoFire 句柄。
locationsEnd!.query(at: location, withRadius: 16.0).observe(GFEventType.init(rawValue: 0)!, with: {(key, location) in
以下工作正常(在 viewDidDisappear 中):
locationsEnd?.firebaseRef.removeAllObservers()
但是使用句柄却没有:
var locationHandle: UInt = 0
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
//following does not work:
locationsEnd?.firebaseRef.removeObserver(withHandle: locationHandle)
}
func aroundMe(_ location: CLLocation){
locationHandle = locationsEnd!.query(at: location, withRadius: 16.0).observe(GFEventType.init(rawValue: 0)!, with: {(key, location) in
//etc
})
}
我已经按如下方式尝试了locationHandle,但没有成功:
var locationHandle = FirebaseHandle()
var locationHandle: FirebaseHandle = 0
var locationHandle: UInt!
var locationHandle: UInt = 0
var locationHandle = FIRDatabaseHandle()
var locationHandle: FirebaseHandle = 0
任何建议都会很棒,如前所述,我可以删除所有观察者,但在其他地方我只需要删除一个句柄。
【问题讨论】:
标签: ios swift firebase geofire