2011-05-03 47 views
1

由于某些原因,此代码不在viewDidLoad中工作,但将在viewWillAppear中工作。有任何想法吗?NSNotificationCenter in viewDidLoad:无法正常工作

[[NSNotificationCenter defaultCenter] 
      addObserver:self 
       selector:@selector(wakeUp:) 
        name:UIApplicationWillEnterForegroundNotification 
       object:nil]; 

谢谢

+2

因此,你有没有把应用程序置于后台,一旦应用程序运行后按下主页按钮,并通过点击它的图标将它带回前台?你有一个方法' - (void)wakeUp:(NSNotification *)notification'?因为它应该工作得很好。 – DarkDust 2011-05-03 07:00:15

+0

是的,我尝试了所有这一切。并添加燃料的火,我把完全相同的代码在viewWillAppear和它的作品。跆拳道? – Rob 2011-05-03 07:12:10

+0

你已经说过'viewWillAppear:';你的意思是'viewDidAppear:'这次?你将不得不描述一些症状。必须有其他事情要么导致这似乎无法正常工作,要么导致其他呼叫似乎工作。你是否确信当你移动这些代码时,只有一个这个通知注册正在进行? – 2011-05-03 07:18:27

回答

2

你绝对肯定viewDidLoad被调用?

+0

上,建立了一个nslog和所有的东西 – Rob 2011-05-03 07:09:25

+4

是你的removeObserver:意外运行? – nielsbot 2011-05-03 08:02:10

+0

哈哈哇,这是一个愚蠢的错误。谢谢!现在我要去确保我总是删除名称为 – Rob 2011-05-03 09:27:31

0

对我而言,我把removeObserver方法放在didReceiveMemoryWarning方法里面,如果我拍一张照片或做别的事情,这个方法会出乎我的意料。所以,现在我总是在dealloc阶段删除通知观察者。