gpt4 book ai didi

ios - 传递 NSNotifications。好的?坏的? NBD?

转载 作者:行者123 更新时间:2023-11-28 18:15:47 27 4
gpt4 key购买 nike

我正在尝试考虑将 NSNotification 对象作为 var 传递给方法的后果。

似乎很难通过通知跟踪逻辑流发生了什么(没有一些很好的评论和方法/对象命名)所以将通知传递给另一个方法/类/库/项目只会让它成为现实调试或智能响应错误的乐趣就更少了。

但感觉就像是那种有很多潜在隐患的东西。

而且我知道还有很多人喜欢通知。

那么对于将实际的 NSNotification 对象作为 var 在方法之间传递,有没有人有一些优点/缺点/更好的做法?

为了清楚起见,这里有一些伪代码:

[[NSNotificationCenter defaultCenter] postNotificationName:kSuperImportantNotification object:self userInfo:soMetaDict];

...稍后在代码中:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(importantThingHappened:) name:kSuperImportantNotification object:nil];

...稍后在代码中:

- (void) importantThingHappened:(NSNotification *)notification {
[respondingInterestedClass executeSomethingWith:notification];
}

...在“respondingInterestedClass”中:

- (void)executeServicesDiscoveredBlock:(NSNotification *)notification {
// ... do something with the NSNotificaiton object.
}

谢谢

最佳答案

这取决于你在做什么,通常这是什么时候使用什么:

  • 一对一关系和松耦合:委托(delegate)
  • 一对一关系和紧耦合:直接方法调用
  • 一对多关系和松耦合:通知
  • 一对多关系和紧耦合:KVO

因此您不应该将通知用于所有类型的通信,许多开发人员即使在不需要时也会大量使用它们。

也就是说,将通知对象传递给方法处理程序是完全没问题的,但不要将它传递到其他任何地方。

关于ios - 传递 NSNotifications。好的?坏的? NBD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40225692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com