objective-c - iOS/Objective-C:NSNotification

标签 objective-c ios nsnotification

我有一个基于Objective-C中的NSNotification的问题:

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

我真的不知道如何设置对象属性...

因此,如果我只想从A类接收通知,如何将其设置为A类?
[A class]


[A alloc]

没有工作。

我对对象参数非常困惑。

最佳答案

如果是nil,那么您将收到所有发送的@"SOME_STRING"通知。

如果不是nil,则仅获得与传递给object的实例有关的内容。

因此...这实际上不是“来自类A”的关联,而是与特定实例的关联。当实例匹配(观察和发布)时,将通知您。

有了这些信息,您可以将[A class]返回的objc实例用作object参数,以便接收您感兴趣的通知-看起来像这样:

观察:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                      selector:@selector(method:)
                                      name:@"SOME_STRING"
                                      object:[A class]];
                                              ^^^^^^^

发布:
[[NSNotificationCenter defaultCenter]
  postNotificationName:@"SOME_STRING" object:[A class]];
                                              ^^^^^^^

关于objective-c - iOS/Objective-C:NSNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050039/

相关文章:

cocoa - 当新对象添加到 NSArrayController 时收到通知

ios - 如何实现SKActionTimingFunction?

objective-c - cocoa NSView subview 阻止拖放

objective-c - 编译器错误阻止 iOS 项目编译

ios - Firebase/Crashlytics 在提交崩溃报告时遇到问题

iOS 是否有更好的替代基于通知的代码?

ios - 为什么阴影半径也会对圆的内部产生影响?

iOS replaceObjectAtIndex 错误

ios - Swift 中的“使用未解析的标识符”

ios - Avplayer AVPlayerItemDidPlayToEndTime 通知不向观察者发送消息