Iphone 通知问题:it';它已发布,但仅被同一类的一个实例缓存,为什么?

Iphone 通知问题:it';它已发布,但仅被同一类的一个实例缓存,为什么?,iphone,objective-c,Iphone,Objective C,我又来了: 我想做的是: 如果我按下按钮,然后发布通知。此通知应由同一类的2个实例缓存 问题: 通知已发布,但仅由一个实例缓存 一些代码和解释 我有一个选项卡栏控制器 我有3个选项卡(3个不同视图-xib文件- 2个视图引用同一个(视图控制器)类(因此,同一个类有2个实例,假设为类A) 其他选项卡/视图引用另一个类(B类) 如果我按下一个视图的按钮,就会触发一个B类方法,在某个点上它会这样做: [[NSNotificationCenter defaultCenter] postNotificat

我又来了:

我想做的是: 如果我按下按钮,然后发布通知。此通知应由同一类的2个实例缓存

问题:
通知已发布,但仅由一个实例缓存

一些代码和解释
我有一个选项卡栏控制器
我有3个选项卡(3个不同视图-xib文件-
2个视图引用同一个(视图控制器)类(因此,同一个类有2个实例,假设为类A)
其他选项卡/视图引用另一个类(B类)

如果我按下一个视图的按钮,就会触发一个B类方法,在某个点上它会这样做:

[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:nil ];
在A类的
viewdiload
方法中,我有以下内容:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateAll:) name:@"update" object:nil];
此外,我还将
updateAll
函数定义为:

- (void) updateAll: (NSNotification *) notification {
    NSLog(@"called");
}
正如我前面所说的,只需启动一次
updateAll
方法

问题
为什么? 如何修复它


谢谢你的阅读

这根本行不通。您正在发布一个名为@“更新”的通知,但您已附加了名为@“更新”的观察员。您应该没有收到任何通知。

您的视图可能尚未加载,因为您使用的是选项卡栏控制器。尚未可见的视图未加载,因此您的
viewDidLoad
很可能只会为一个实例调用。我建议您调试它,并确保您的
addObserver
调用确实执行了两次,而不是一次。

发布通知的方式是同步的。我认为另一个对象尚未注册为观察者,因此它无法接收发布的通知


而且,如果通知发布在另一个线程上,则该通知将由同一线程上的观察者获取。

对不起,问题是我发布代码时,因为我已清理了代码。我的道歉