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