我有一个关于删除观察者的基本问题。iOS - 使用dealloc删除观察者
我有一个由3个ViewController子类继承的ViewController父类。 例如。 BookVCVC,BookFlightVC,BookTrainingVC
在这里,我添加了一个观察者在父类(我做[super viewDidLoad]
在子ViewControllers中)的viewDidLoad
,它通知一个写在父类中的方法。我的代码 -
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(BookingCompleted:) name:@"BookingCompleted" object:nil];
现在我想删除观察者,当我从任何一个孩子ViewControllers的搬走,但我不能在每个孩子的ViewController的dealloc
写[super dealloc]
因为ARC不允许这样。
如何删除设置的观察者?因为每当我移动到子ViewController,一个新的观察者被添加,导致奇怪的事情(如,调用该方法两次/三次... - 调用警报两次/三次...)。
请提出建议。
你的意思是我应该在父类本身写'dealloc'? 如果是这样,我首先完成了它,但它没有被调用。 – cheeseRoot 2014-09-10 19:17:24
@ pRimei5你确定所有对该对象的引用都已被释放吗? – 2014-09-10 19:25:59