简单问题:
当我使用goOffline(断开连接到firebase)时,是否会自动删除所有观察者?
如果没有,是否有其他方法可以做到这一点,因为removeAllOberserves似乎不起作用或者我必须保留单个句柄数组?
更新
我自己回答。 removeAllOberserves效果很好,如果你用你用来设置观察者的引用来调用它!
示例:
Firebase *userThreadRef;
userThreadRef = [userRef appendPathComponent: ThreadsPath];
[userThreadRef observeEventType: FEventTypeChildAdded withBlock: ^(FDataSnapshot *snapshot) {
...
}];
....
[userThreadRef removeAllObservers];
不要使用这样的新引用:
Firebase *newUserThreadRef = [userRef appendPathComponent: ThreadsPath];
[newUserThreadRef removeAllObservers];
答案 0 :(得分:0)
当我使用goOffline(断开连接到firebase)时,是否会自动删除所有观察者?
没有。调用goOffline()
不会自动删除观察者/听众。
还有另一种方法吗,因为removeAllOberserves似乎不起作用或者我必须保留一个单句柄数组?
如果没有看到您的代码,很难说,但可能您的期望是错误的。
您需要在每个引用上调用removeAllObservers()
。方法名称中的All
是因为它删除了所有事件类型的观察者,而不是所有引用。