更新阵列中CBP外围设备的状态

问题描述

我将一些蓝牙外围设备(CBPeripheral)存储在一个阵列中。数组是@Published,位于@ObservableObject中,因此我可以查看外围设备在接口中填充的外围设备,如下所示:

ForEach(0 ..< devices.count,id: \.self) { value in
    Text("name: \(self.devices[value].name ?? "no name") state: \(self.devices[value].state.rawValue))")
}
Button(action: {
    print("devices are: \(String (describing: self.BLE.devices))")
}) {
    Text("Prints correct states")
}

中央经理代表执行以下操作以存储找到的设备:

func centralManager(_ central: CBCentralManager,diddiscover peripheral: CBPeripheral,advertisementData: [String : Any],RSSi RSSI: NSNumber) {
    self.devices.append(peripheral)
    centralManager.connect(peripheral!,options: nil)
}

问题是我找不到找到绑定到状态值的方法。仅当从数组添加删除项时,状态才能正确刷新。我理解这是因为数组是@Published,而状态本身不是。但是,sureley是否有某种方法可以在现有类中的属性获取包装器?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)