0
在AViewController中我做了下一件事。我有一個崩潰。爲什麼我的班級收到通知?
[self.navigationController popViewControllerAnimated:NO];
[[AppDelegate delegate].tabBarController setSelectedIndex:1];
AViewController將被釋放並且BViewController將會出現(它是第一個標籤)。
我有一個崩潰。
1)AViewController卡列斯的dealloc
2)BViewController發出通知
3)我得到崩潰AViewController
的onRotation方法爲什麼AViewController收到ntf_onRotation通知?我添加了removeObserver方法。
我的班
@implementation AViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(onRotation:)
name:@"ntf_onRotation"
object:nil];
}
-(void) viewDidUnload
{
[super viewDidUnload];
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"ntf_onRotation" object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"ntf_onRotation" object:nil];
[super dealloc];
}
@end
@implementation BViewController
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter] postNotificationName:@"ntf_onRotation" object:nil];
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] postNotificationName:@"ntf_onRotation" object:nil];
}
@end
你檢查AViewController所有其他引用?如果AViewController仍然收到通知,那麼它意味着AViewController是活的。 – beryllium 2012-03-12 16:20:04
我添加NSLog到dealloc。我看到它被稱爲。這意味着AViewController的保留計數等於零。 – Voloda2 2012-03-13 16:11:58