4

我正在开发一个 iOS BLE 应用程序,一切都很好。我在一个单例类中处理 BLE,该类discoverPeripheral()在视图控制器的viewDidAppear(). 从那里我连接设备并交换数据。

现在我正在尝试在我的应用程序中实现 VIPER 架构,但我无法确定这个 BLE 部分将放置在哪里。因为目前我的 BLE 代码在视图显示时被激活。我想出了以下方案:将ble扫描放在presenter中,一旦视图进入内存,请求presenter开始扫描。演示者将要求 BLE 单例使用适当的 UUID 进行扫描,一旦收到数据,通知交互器将其存储到数据库中,然后更新 UI。

4

1 回答 1

3

万一有人在这里徘徊寻找同样的问题,这就是我最终做的事情:

我在交互器中调用了 ble 单例。因此,当用户点击 UI 进行 ble 扫描时, presenter.startBleScan()interface.showUpdatingBleDevices()在 UI 上被调用。

演示者然后呼叫interactor.startBleScan()

交互者与单例类对话并调用presenter.didReceiveNewBleDevices(count: 5)演示者

之后,主持人打电话interface.hideUpdateBle()interface.showNewDevices

于 2016-11-07T09:02:37.627 回答