NSNotificationCenter - 具有不同名称的相同观察者

时间:2014-08-25 11:30:40

标签: ios objective-c nsnotificationcenter

是否可以在NSNotificationCenter中使用不同名称链接一个方法?

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(Finish:) name:@"FinishDownload_data1" object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(Finish:) name:@"FinishDownload_data2" object:nil];

...等

在我的代码中,当我调用通知时,我在userInfo Dictionary中传递其名称和其他一些参数。

我想要这个的原因是因为我有运行时生成的事件。它们具有相同的主体,但仅在保存目标方面有所不同,具体取决于_data#。我希望每个下载都在同一个地方处理。

问题是,如果我使用它,则不会调用通知。

1 个答案:

答案 0 :(得分:5)

您发布的代码适用于多个通知名称。您可以在回调中区分两者:

- (void)Finish:(NSNotification *)notification {
    if ([notification.name isEqualToString:@"FinishDownload_data1"]) {
        ...
    }
    else {
        ...
    }
}

没有理由不通知通知。你确定你实现了回调吗?