当前位置: 首页 > 面试题库 >

在Swift中应删除NSNotification的观察者吗?

林丁雷
2023-03-14
问题内容

NSNotification由于viewDidUnloaddealloc()不可用,我应该在哪里删除Swift 中的观察器?


问题答案:

使用以下方法,其功能与相同dealloc

deinit {
    // Release all resources
    // perform the deinitialization
}

在取消释放类实例之前,将调用反初始化器。您使用deinit关键字编写反初始化器,类似于使用init关键字编写初始化器。反初始化器仅在类类型上可用。

迅捷反初始化器



 类似资料:
  • 问题内容: 阅读针对iOS 9的这篇文章后,我知道您不再需要removeObserver。 然而,对于iOS 8的,你需要给 removeObserver 在中的viewController的方法。但我无法理解。如果一个viewController被释放,那么它的DEAD不是吗?为什么我们需要做一个removeObserver。作为观察员就像打电话给永远不会接电话的死者一样 我不明白什么? 问题答

  • 我正在学习RxJS,对于“听众”在哪里(在可观察的或观察者中),他们是如何订阅/取消订阅的,以及当观察者“不再对”可观察的“不感兴趣”时会发生什么,比如当你使用或。 对于第一部分——什么是订阅什么,什么是倾听者——我对这些陈述之间看似矛盾的地方感到困惑。从http://reactivex.io/rxjs/manual/overview.html我们读到观察者不是观察者的“听众” 这与addEven

  • 问题内容: 如果我这样存储观察者: 一旦不再需要我该如何删除/禁用/清理? 我的实例没有接收到实例的任何类似方法,本身也没有任何类似的方法。 问题答案: 在iOS 11中,您不必这样做。只是让观察者超出范围即可。让观察者在观察者之前死亡或让被观察者在观察者之前死亡不再有任何惩罚,因此您没有实际工作要做。 另一方面,如果您确实 要 注销观察者,则将其从保留它的内容中删除,或告诉它。(某些东西必须保留

  • 如何在收到第一个结果后移除观察者?下面是我尝试过的两种代码方式,但它们都不断接收更新,即使我已经删除了观察者。

  • 问题内容: 我一直在阅读Observer模式,以保持UI处于最新状态,但仍然看不到它的用途。即使在我的特定对象中通知了我的MainActivity然后运行update();方法我仍然无法使用Pet对象来获取更新值,因为该对象是在Oncreate中创建的…而我只是无法创建新对象,因为那时变量会有所不同..这是我的实施,它似乎不起作用。 观察者/ MainActivity 可观察/宠物 问题答案: 首