SwiftUI를 사용하여 앱을 작성 중이며 Binding<Value?> A와를 Binding<Value>.
내 응용 프로그램 AvatarView에는 특정 사용자의 이미지를 렌더링하는 방법을 알고 있습니다.
struct AvatarView: View {
@Binding var userData: UserData
...
}
내 응용 프로그램에는 ContentViewID별로 사용자 사전과 아바타를 표시 해야하는 사용자의 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?>이며 AvatarViewa를 사용 하기 때문에 결합되지 않습니다 Binding<UserData>.
내가 시도한 것들 ...
$userById[activeUserId]!의 포장을 풀려고하기 때문에 작동하지 않습니다Binding<UserData?>. 당신은 단지 랩을 해제 할 수Optional는 아니고를Binding<Optional>.$(userById[activeUserId]!)아직 이해하지 못하는 이유로 작동하지 않지만$컴파일 타임에 무언가 가 해결되어 임의의 표현식 앞에 접두사를 사용할 수 없다고 생각합니다$.
제안 해 주셔서 감사합니다! 아마 잘 작동 할 것이라고 생각하지만 안전하지 않은 캐스트를 선호하지 않습니다. 시도하면 "Binding <UserData?>에서 관련되지 않은 Binding <UserData> 유형으로 전송"이라는 빌드 경고가 표시됩니다.
—
rjkaplan
$userById[activeUserId] as! Binding<UserData>?