时间:2010-07-25 05:50:09

标签: ios objective-c nsnotification

3 个答案:

答案 0 :(得分:60)

答案 1 :(得分:6)

如果您在viewWillDisappear:viewDidDisappear:中实施删除观察者,则不应将观察者添加到viewDidLoad

而是将观察者添加到viewWillAppear:中。您遇到的问题是因为当UIViewController视图上显示任何视图时,您的观察者将被删除,并且由于您在viewDidLoad中添加了只会发生一次的观察者,因此它将会丢失。

请记住,当您的主视图不在前面时,此方法适用于您不希望观察的对象。

另请注意,viewDidUnload也已被折旧。

答案 2 :(得分:2)

removeObserver:放入dealloc并没有错。事实上它没有被调用意味着view1在解雇后没有正确释放。看起来某些东西保存着指向view1的指针,检查保留周期。

另外,你不应该在super上调用dealloc。