为什么这个UIViewController不接收我的NSNotification

时间:2011-08-19 20:16:33

标签: iphone label nsnotificationcenter

我无法让viewController接收来自NSNotificationCenter的通知。我哪里错了?

在我的viewController中,我定义了:

- (id)init {

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(receiveEvent:)
                                                 name:UIApplicationWillResignActiveNotification
                                               object:nil];


    return self;
}


- (void)receiveEvent:(NSNotification *)notification {
    counter = counter + 1;
    NSString *string = [NSString stringWithFormat:@"%d", counter];  
    vocabword.text = string;
}

但是文字没有更新:(

2 个答案:

答案 0 :(得分:1)

您发布的代码中没有任何内容显然是错误的。这可能是其他一些问题。你收到日志消息了吗?你确定你的班级正在创建吗?你真的在应用程序上辞职吗?

答案 1 :(得分:1)

您的init方法是否被调用? (而且,你为什么不在那里调用[super init]?)

根据构造viewController的方式,可能不会调用init方法本身。相反,可以使用anther初始化程序,例如initWithCoder:如果从xib加载。

通常我会在viewDidLoad中注册通知并在viewDidUnload中注销。如果您的视图由于某种原因(例如内存压力过大而被卸载),您是否需要接收通知?