【发布时间】:2020-08-15 15:44:21
【问题描述】:
我有一个 ObservableObject,描述如下:
class DeviceManager: ObservableObject {
@Published var devices: [Device] = []
var blM: BlInfo!
init() {
blM = BlInfo()
blM.stateDelegate = self
blM.devicesDelegate = self
}
}
extension DeviceManager: BlDevicesDelegate {
func didDiscoverDevice(peripheral: CBPeripheral) {
print("Discovered \(String(describing: peripheral.name)) with ID \(peripheral.identifier)")
if devices.filter({ $0.name == peripheral.name }).count == 0 {
print("Added \(String(describing: peripheral.name)) with ID \(peripheral.identifier)")
devices.append(Device(id: peripheral.identifier, name: peripheral.name ?? "Unknown name", peripheral: peripheral))
}
}
func didConnect(peripheral: CBPeripheral) {
}
}
extension DeviceManager: BlStateDelegate {
func didChangeState(state: CBManagerState) {
switch(state) {
case CBManagerState.poweredOn:
print("BLE is ready")
blM.discover()
default:
print("BLE is not ready")
}
}
}
我想在视图中显示设备列表。我已经创建了视图,但是编译器抱怨我的对象:
struct ContentView: View {
@ObservedObject private var deviceManager: DeviceManager! = DeviceManager()
var body: some View {
NavigationView {
List(deviceManager.devices) { device in
Text(device.name)
}.navigationBarTitle("Devices")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
错误是
通用结构“ObservedObject”需要“DeviceManager?”符合'ObservableObject'
您知道为什么它不起作用吗?谢谢!
【问题讨论】:
标签: swift observable