我正在构建一个程序,NSNotification
因为我希望能够从另一个类传递信息,这将影响不同类中变量的值。
所以,我设置了以下内容:
categories.m
班级:
在viewDidLoad
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateTheScore:)name:@"TheScore" object:nil];
在同一个班级,我的updateTheScore
功能:
- (void)updateTheScore:(NSNotification *)notification
{
NSLog(@"Notification Received. The value of the score is currently %d", self.mainScreen.currentScore);
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
在mainScreen.m
:
self.currentScore++;
[[NSNotificationCenter defaultCenter]postNotificationName:@"TheScore" object:self];
通常情况下,分数会从 0 更新到 1。
该程序将notification
正确调用,因为我可以看到我NSLog
正在执行。但是,变量的值没有通过,这就是我卡住的地方。
谁能想到为什么我的变量值没有通过的解决方案?
澄清一下,如果我在该postNotificationName
行之前执行 NSLog 以向我显示 this 的值,self.currentScore;
则返回 1,正如预期的那样。在updateTheScore
函数中,它returns 0
.
在此先感谢大家。