添加观察者是否会增加对象的保留计数? 如果是,ARC是否也会处理此观察者的移除?如果没有,我应该在哪里删除观察者?
答案 0 :(得分:79)
即使您使用ARC
,也应该明确删除观察者。创建dealloc
方法并删除..
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
如果你看到这个方法,你不需要在这里调用[super dealloc];
,只需要没有超级dealloc的方法。
Swift的更新
如果要在swift中编写代码,可以在 deinit 方法中删除观察者。
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}