【发布时间】:2018-05-22 21:06:34
【问题描述】:
所以我正在使用蓝牙连接,并且我有一系列连接的设备(一些传感器)。设备中的问题是,只要有东西连接到该设备,CBCentralManager 扫描就找不到它们(这就是它们的工作方式)。这就是为什么我必须创建一个连接的 CBPeripherals 数组,我想在 TableView 中显示它,在那里我还显示未连接的设备(扫描时发现的设备)。
现在,问题是,每当我将一些东西放入我的 connectedDevices:[CBPeripheral] 数组并从我的控制器返回,然后返回到它时,connectedDivecies 数组是空的。这很正常,我理解。
所以问题是,我怎样才能快速存储该数组,以便每当我返回到该控制器时它保存相同的数据,我的意思是 - 相同的 CBPeripheral 对象?我尝试使用 UserDefaults 来做,但似乎没有任何效果。
请给我一些关于如何管理它的想法
【问题讨论】:
-
您可以为此使用单例(这是一种设计模式)。创建一个“唯一”的类,这意味着它总是返回管理 CBCentral 的相同对象(这就是它被称为单例的原因)。
-
因此,每当我将连接的设备数组放入该类的单例对象中时,当我实例化该单例时,应用程序类中的任何位置都会在整个应用程序生命周期中拥有该数组?
标签: swift bluetooth savestate cbperipheral cbcentralmanager