最近我一直在玩蓝牙框架,并且已经掌握了足够的知识来开始构建应用程序。唯一的问题是,我找到的所有示例以及我所做的所有练习都包括将核心蓝牙核心代码放在与用户交互的UIView相同的文件中。
我希望我未来的应用程序有多个视图,其中BLE扫描在后台进行。我最初考虑创建一个名称类似于bleDeviceFinder
的对象,并将该对象传递给每个视图。但是,在考虑之后,我意识到如果我想在当前视图中发生某些事情,我需要函数didDiscoverPeripheral
来直接访问它应该影响的UIView
个对象。
我知道这可能是一个愚蠢的问题,最好的方法是什么?我想也许可以设置并提醒并订阅每个视图到该警报;这是一个很好的解决方案吗?
答案 0 :(得分:2)
你在应用程序中传递的准单例BTLEManager。它为发现等事件发送NSNotifications,ViewControllers会观察这些通知。事实(即已发现设备的列表)保留在BTLEManager中。一旦viewController收到这样的通知,它就会向BTLEManager询问当前设备的列表,然后viewController会相应地更改您的视图。视图永远不应该直接与BTLEManager交谈。
我将如何做到这一点。