fan*_*ard 23 iphone cocoa-touch objective-c
我曾经addObserver在viewDidLoad:和removeObserver中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];
}
Run Code Online (Sandbox Code Playgroud)
但据一些文章说,最好是addObserver在viewDidAppear:和removeObserver中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];
}
Run Code Online (Sandbox Code Playgroud)
那么,addObserver/removeObserver更好的方法是什么?
Saa*_*aad 21
这取决于您的场景,通常最好的方法是添加viewDidLoad和删除in dealloc和in viewDidUnload,但是在某些情况下,当您在不同的类中使用相同的方法(如UI效果)并且想要使用通知仅调用当前屏幕的方法时,那么您将必须添加观察者dealloc并将其删除viewWillAppear或viewWillDisappear/viewDidAppear
| 归档时间: |
|
| 查看次数: |
19517 次 |
| 最近记录: |