【发布时间】:2012-04-26 12:13:15
【问题描述】:
查看各种 Apple 示例(例如 Add Music),我看到他们将观察者添加到 viewDidLoad 中的默认 NSNotificationCenter,然后在 dealloc 中删除它们。这似乎很危险,因为可以多次调用 viewDidLoad 而不会调用 dealloc。然后这将多次添加相同的观察者,导致处理程序被多次调用。
解决此问题的方法是同时删除 viewDidUnload 中的观察者,但这意味着同一观察者可能会在 dealloc 中第二次被删除,这似乎是一个潜在问题。
我错过了什么?
【问题讨论】:
-
我不认为移除一个不存在的观察者有任何不利影响。
-
@jbat100 谢谢。我绝对认为删除 dealloc 和 viewDidUnload 中的观察者是唯一的方法。
标签: objective-c ios dealloc nsnotificationcenter addobserver