我可以两次(偶然)将观察者添加到通知中心,并且两次将收到通知。 是否只能收到一个通知?您知道更优雅的解决方案吗?

我向您展示此示例,因为这可能会导致错误。 通用标签

有帮助吗?

解决方案

如果不确定是否在其他地方添加了观察者,则每次添加观察者时都可以使用以下代码 通用标签

这样,您将删除旧的(如果存在)并添加新的。

这不是100%的失败证明,但这只是一个开始。在调用异步或其他特殊情况的多线程应用中,这可能会失败。

其他提示

您还可以将一个对象设置为nil,然后再将该对象用作仍然有效的对象。

不是所有的事情都可以使之失效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top