我有两个类,它们使用NSNotification
来相互通信。即使只添加观察者一次也会发出两次通知
目前,我有一个问题,通知被解雇两次,我已经双倍/三倍/甚至更多的检查观察员没有被添加超过1次,通知没有被发布两次,全球搜索我的项目相同通知。
我的代码是像下面
新增通知观察
[[NSNotificationCenter defaultCenter] removeObserver:self name:notification_deleteMediaFromGallery object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationReceiver:) name:notification_deleteMediaFromGallery object:nil];
通知接收器
- (void)notificationReceiver:(NSNotification*)notification {
if ([notification.name isEqualToString:notification_deleteMediaFromGallery]) {
if ([[notification.userInfo objectForKey:@"kind"] integerValue]==GalleryKindPhoto) {
//My statements
}
else if ([[notification.userInfo objectForKey:@"kind"] integerValue]==GalleryKindVideo) {
//My statements
}
}
}
邮政通知
dispatch_async(dispatch_get_main_queue(), ^{
[_browser reloadData];
[[NSNotificationCenter defaultCenter] postNotificationName:notification_deleteMediaFromGallery object:nil userInfo:@{@"index":@(_browser.currentIndex), @"kind":@(self.kind), @"function":[NSString stringWithFormat:@"%s",__PRETTY_FUNCTION__]}];
});
我也通过EmptyStack试图this solution但不能让它开始工作。
如果你能帮我解决这个问题,我将非常感谢你。
感谢。
编辑
注意
我在我viewDidLoad中添加的观察者,并不能从viewwillappera/viewWillAppear中添加/删除观察者或viewdidappear/viewdiddisappear因为下一个视图 - 控制将要上推当前viewcontroller会发布通知
可以是U曾尝试这一点,但你能告诉我们发生了什么,你在这两个地方增加一些打印语句之后;一个在哪里你的帖子和一个你在哪里注册 – humblePilgrim
@humblePilgrim是的我曾尝试过,它记录了一次我发布我的通知,但在接收器中它记录了两次,地址号码相同的通知 –
我会在约一个小时内发布通知日志 –