上下文
我有一个通用的SwiftUI View
,它应该根据Generic Type
显示不同的元素。然而,我在下面的实现中得到了以下错误:
在作用域中找不到“$entityA”
编码
class EntityA: Entity, NSManagedObject {
@NSManaged var name: String
}
class EntityB: Entity, NSManagedObject {
@NSManaged var isOn: Bool
}
struct RootView<E: Entity>: View {
@ObservedObject var entity: E
var body: some View {
switch entity {
case let entityA as EntityA:
TextField("Name", text: $entityA.name) // Error
case let entityB as EntityB:
Toggle("Enabled", isOn: $entityB.isOn) // Error
}
}
}
问题
在我看来,当将特定的Entity
绑定到一个常量时,它失去了它的@ObservedObject
修饰符,因此不能在TextField
或Toggle
内部传递。
- 我该如何解决这个问题?
1条答案
按热度按时间hts6caw31#
您需要另一个子视图,在其中可以观察特定的实体。