我无法理解为什么下面的代码无法编译。我收到一条错误消息,指出我必须遵守 ObservableObject,但我不明白为什么不这样做。
我已经简化以表明我正在看到。我有两节课。第二个观察第一个,然后视图观察第二个。
头等舱
import Foundation
import SwiftUI
import CoreBluetooth
class BLEPeripheralDevice: NSObject, ObservableObject {
@Published var bodySesnorLocation: String = ""
}
Run Code Online (Sandbox Code Playgroud)
二等舱
import Foundation
import SwiftUI
import CoreBluetooth
class BLEManager: NSObject, ObservableObject {
@ObservedObject var blePeripheralDevice: BLEPeripheralDevice!
@Published var blePeripheralName: String = ""
}
Run Code Online (Sandbox Code Playgroud)
看法
import SwiftUI
struct BluetoothDeviceView: View {
@ObservedObject var bleManager = BLEManager()
var body: some View {
VStack (spacing: 10) {
Text("Bluetooth Devices")
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译此代码时,我在以下行的第二类中收到错误。
@ObservedObject var blePeripheralDevice: BLEPeripheralDevice!
Run Code Online (Sandbox Code Playgroud)
通用结构“ObservedObject”需要“BLEPeripheralDevice?” 符合“ObservableObject”
我不明白为什么会这样。任何帮助表示赞赏。
ObservedObject 是主要针对 View 的属性包装器。使用已发布的代替..
@Published var blePeripheralDevice: BLEPeripheralDevice!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22529 次 |
| 最近记录: |