在 iOS 上通知框架客户端状态更改的最佳方式
Best way to notify framework clients of state changes on iOS
我正在为 iOS 应用程序开发一个框架,允许与我公司制造的自定义 BLE 设备连接。我们计划将带有 public headers 的框架二进制文件分发给客户。我已经设计了面向客户端的界面,但它缺少一个主要功能:关于各种不同状态条件的通知。也就是说,当框架开始扫描设备、连接到设备、读取数据、上传到我们的后端等时,客户端应用程序目前无法知道。
这对于本地测试来说已经很好了,但在发布之前,最好添加一些功能以允许客户构建一个 UI 来根据这些不同的状态条件进行更新。我不完全确定当前最好的方法是什么。我知道我可以为每个状态更改创建 NSNotificationCenter
和 post 通知,但我不确定是否有更好的方法来做到这一点?我应该接受用户回调吗?公开某种侦听器协议并能够注册侦听器?我相信其他人之前已经解决过这个问题,你发现什么对 iOS 很有效?
使用NSNotificationCenter进行一对多通信,它通知所有注册到事件的对象,而不知道是谁抛出的。
使用协议和委托进行一对一的对象通信。
根据我的经验,您应该使用委托,这将是干净的实现,您还可以定义可选和必需的 protocol.The 客户端的全局 class 可以使用此委托,并更新.
我正在为 iOS 应用程序开发一个框架,允许与我公司制造的自定义 BLE 设备连接。我们计划将带有 public headers 的框架二进制文件分发给客户。我已经设计了面向客户端的界面,但它缺少一个主要功能:关于各种不同状态条件的通知。也就是说,当框架开始扫描设备、连接到设备、读取数据、上传到我们的后端等时,客户端应用程序目前无法知道。
这对于本地测试来说已经很好了,但在发布之前,最好添加一些功能以允许客户构建一个 UI 来根据这些不同的状态条件进行更新。我不完全确定当前最好的方法是什么。我知道我可以为每个状态更改创建 NSNotificationCenter
和 post 通知,但我不确定是否有更好的方法来做到这一点?我应该接受用户回调吗?公开某种侦听器协议并能够注册侦听器?我相信其他人之前已经解决过这个问题,你发现什么对 iOS 很有效?
使用NSNotificationCenter进行一对多通信,它通知所有注册到事件的对象,而不知道是谁抛出的。
使用协议和委托进行一对一的对象通信。
根据我的经验,您应该使用委托,这将是干净的实现,您还可以定义可选和必需的 protocol.The 客户端的全局 class 可以使用此委托,并更新.