我正在使用ARC编写一个Objective-C应用程序,尽管我从未真正意识到保留计数,但它确实是一个很大的进步。但是,有一个案例我乍看之下在文档中找不到。
如果在我的init
方法中,我调用[self addObserver:self forKeyPath:…]
来获取使用@property
指令声明ivar的时间的通知,是否需要明确调用removeObserver…
in dealloc
方法,还是ARC处理键值观察器清理?同样,如果我将对象添加到NSNotificationCenter
,是否需要在dealloc
中明确删除?
答案 0 :(得分:5)
您需要致电removeObserver
,ARC只会自动保留计数。 removeObserver
不会影响保留计数