আমি SwiftUI ব্যবহার করে একটি অ্যাপ নির্মাণের করছি এবং একটি উপায় একটি রূপান্তর করতে চাই Binding<Value?>একটি থেকে Binding<Value>।
আমার অ্যাপ্লিকেশনটিতে আমার একটি রয়েছে AvatarViewযা কোনও নির্দিষ্ট ব্যবহারকারীর জন্য কীভাবে কোনও চিত্র রেন্ডার করতে হয় তা জানে।
struct AvatarView: View {
@Binding var userData: UserData
...
}
আমার অ্যাপ্লিকেশনটিতে ContentViewদুটি বাইন্ডিংয়ের মালিকানা রয়েছে : আইডি দ্বারা ব্যবহারকারীদের একটি অভিধান এবং সেই ব্যবহারকারীর আইডি যার অবতারটি আমাদের দেখানো উচিত।
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]!)যে কারণে আমি এখনও বুঝতে পারি না সেগুলির জন্য কাজ করে না, তবে আমি মনে করি$যে সংকলনের সময় এমন কিছু সমাধান করা হয়েছে যাতে আপনি স্বেচ্ছাসেবীর মত প্রকাশের উপস্থাপন করতে পারেন না$।
$userById[activeUserId] as! Binding<UserData>?