我用2 NSNotificationCenter
,爲了避免保留週期我已經創建了一個weakSelf這樣的:__unsafe_unretained AugmentedRealityViewController *weakSelf = self;
無法刪除NSNotificationCenter
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
if (weakSelf.architectWorldNavigation.wasInterrupted) {
[weakSelf.architectView reloadArchitectWorld];
}
[weakSelf startWikitudeSDKRendering];
}];
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillResignActiveNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
[weakSelf stopWikitudeSDKRendering];
}];
的問題是,即使我刪除它們dealloc
內他們一直被解僱和應用程序崩潰。
的dealloc
內部,以便去除NSNotificationCenter
我使用下面的代碼:
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self.architectView removeFromSuperview];
}
,當我離開的ViewController但通知仍然有效,它被稱爲..誰能告訴我什麼是錯的代碼以及如何解決這個問題?
你在哪裏添加觀察者?在應用程序代表? –
@ Mr.T在我的ViewDidLoad – Signo
離開視圖控制器,你的意思是什麼?這是否意味着回家或轉移到另一個VC? –