我正在开发一个iOS BLE应用程序,一切都很棒。我在一个单例类中处理BLE,该类在视图控制器的discoverPeripheral()
中调用其viewDidAppear()
方法。从那里开始,我连接设备并交换数据。
现在我正在尝试在我的应用程序中实现VIPER架构,我无法确定将放置此BLE部分的位置。因为当前显示视图时会激活我的BLE代码。我提出了以下方案:将ble扫描放在演示者中,一旦视图进入内存,请求演示者开始扫描。演示者将要求BLE单例使用适当的UUID进行扫描,并在收到数据后通知Interactor将其存储到数据库中,然后更新UI。
这是我与VIPER的第一个项目,我真的很感激任何意见或建议。谢谢!
答案 0 :(得分:1)
如果有人在这里徘徊寻找同样的问题,这就是我最终做的事情:
我将调用放置在交互器中的ble单例中。因此,当用户点击用于ble扫描的UI时,
presenter.startBleScan()
和
在UI上调用interface.showUpdatingBleDevices()
。
然后,演示者会调用interactor.startBleScan()
。
交互操作员与单例类进行对话并在演示者
上调用presenter.didReceiveNewBleDevices(count: 5)
在此之后,演示者会调用interface.hideUpdateBle()
和interface.showNewDevices