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

标签 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 字典中传递它的名称和一些其他参数。

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

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

最佳答案

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

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

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

关于ios - NSNotificationCenter - 具有不同名称的相同观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25484952/

相关文章:

android - 在钛中点击通知后如何打开特定窗口

ios - CocoaPods 1.0.1 仍然需要与 Swift 桥接 header

objective-c - 防止 NSBrowserCell 工具提示过宽

ios - 如何使用 addObserver 闭包方法在 Swift 5 中删除Observer

objective-c - 应用程序将终止 : NSNotificationCenter vs Application Delegate

iOS - 在 Swift 代码中使用 Cocoapods objective-C

ios - cancelPreviousPerformRequestsWithTarget : isn't working for me

ios - 如何在 ios 中的 CALayer 上添加按钮?

iphone - 我该怎么做才能调整 UIView 的大小以适合其 subview ?

ios - 前台应用程序之间的应用程序间通信