jis*_*ala 9 java objective-c ios swift
听说组件之间的java'发布 - 订阅'风格的通信,而不需要组件明确地相互了解,这是事件总线.似乎使用事件总线我们可以非常容易地在不同类之间进行通信,而且需要更少的编码.我知道iOS中的NSNotifications也可以这样做.NSNotification不是这里的替代品.请告诉我除了委托模式之外什么是iOS中的一个很好的解决方案,它是一个很好的替代EventBus用于类之间的通信.
lif*_*foo 11
使用Swift,您可以使用SwiftEventBus.它只是NSNotificationCenter和DispatchQueue的一个很好的包装器.
注册参加活动:
SwiftEventBus.onMainThread(target, name: "someEventName") { result in
// UI thread
// Do something when the event occurr
}
Run Code Online (Sandbox Code Playgroud)
触发事件:
SwiftEventBus.post("someEventName")
Run Code Online (Sandbox Code Playgroud)
如果你需要定制它的源代码是短,清晰和易于理解.
我认为你可以使用NSNotificationCenter
它,我读到你的评论它是一对多的,默认情况下它是真的但你可以指定你想从哪个对象接收这样的消息:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(someSelector:)
name:@"MyPersonalNotification"
object:someOtherObject];
Run Code Online (Sandbox Code Playgroud)
在这里MyPersonalNotification
,someSelector:
只有在someOtherObject
发布时才会收到.这使得沟通一对一.
您也可以使用Key-Value Observing API,但我个人觉得它有点不舒服.
归档时间: |
|
查看次数: |
6393 次 |
最近记录: |