【问题标题】:Why will app crash if did not remove KVO observer before dealloc?如果在 dealloc 之前没有移除 KVO 观察者,为什么应用程序会崩溃? 【发布时间】:2019-01-14 11:21:27 【问题描述】: 我知道我们需要在实例释放之前删除 KVO 观察。 但是为什么会发生这种崩溃呢? 【问题讨论】: 标签: ios key-value-observing kvocontroller 【解决方案1】: 如果您使用 Swift4 KVO,则不需要。它被安全地处理了。 话虽如此,之前需要它,因为向释放的实例发送消息会使应用程序崩溃。这个概念类似于here提到的答案。 要了解有关 Swift3 与 Swift4 KVO 的内存管理的更多信息,请参阅here 【讨论】: