【发布时间】:2016-04-06 17:49:35
【问题描述】:
我有一个触发某些事件的自定义委托。就上下文而言,它是一个任意触发事件的蓝牙设备。我希望我的视图控制器可以选择订阅这些由设备委托触发的事件。
每个视图控制器都符合自定义委托是没有意义的,因为这意味着设备变量将是本地的,并且只会在该视图控制器中触发。其他视图控制器不会意识到这种变化。另一个具体示例是CLLocationManagerDelegate - 例如,如果我希望所有视图控制器都监听 GPS 坐标变化怎么办?
相反,我更多的是考虑一个所有视图控制器都可以订阅的全局委托。因此,如果一个视图控制器触发了一个请求,该设备将为所有正在监听的订阅视图控制器调用委托函数。
我怎样才能实现这种架构设计?代表不是正确的方法吗?我想也许NotificationCenter 可以在这里提供帮助,但似乎类型过于松散,也许抛出协议有助于使事情更易于管理/优雅?任何帮助将不胜感激!
【问题讨论】:
标签: ios swift bluetooth delegates swift2