问题描述
我将一些蓝牙外围设备(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 (将#修改为@)