我曾在viewDidLoad:
中使用addObserver
,并在dealloc:
中使用removeObserver
。 代码如下:
我曾经在viewDidLoad:
里添加观察者,然后在dealloc:
里移除观察者。代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshData)
name:AnyNotification
object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AnyNotification
object:nil];
}
但是根据一些文章所说,最好在viewDidAppear:
中添加观察者并在viewDidDisappear:
中移除观察者。 代码:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshData)
name:AnyNotification
object:nil];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AnyNotification
object:nil];
}
那么,添加观察者/移除观察者的更好方法是什么呢?
dealloc
中删除观察者并不好。 - Eimantas