如何在Swift的绑定中解开可选值?
我正在使用SwiftUI构建应用,并希望将a转换Binding<Value?>为Binding<Value>。 在我的应用程序中,我有一个AvatarView,它知道如何为特定用户渲染图像。 struct AvatarView: View { @Binding var userData: UserData ... } 我的应用程序拥有一个ContentView拥有两个绑定的:一个ID用户字典,以及我们应显示其头像的用户ID。 struct ContentView: View { @State var userById: Dictionary<Int, UserData> @State var activeUserId: Int var body: some View { AvatarView(userData: $userById[activeUserId]) } } 问题:上面的代码没有合并,因为$userById[activeUserId]它是类型的,Binding<UserData?>并且AvatarView包含一个Binding<UserData>。 我尝试过的事情 $userById[activeUserId]!不起作用,因为它正在尝试打开Binding<UserData?>。您只能解开一个Optional,而不能解开一个Binding<Optional>。 $(userById[activeUserId]!)由于我尚不了解的原因而无法正常工作,但是我认为有关$问题在编译时已解决,因此您似乎无法在任意表达式前添加前缀$。