मैं कर रहा हूँ एक नौसिखिया SwiftUI डेवलपर, और मैं कर रहा हूँ परेशानी हो रही है बनाने के एक दृश्य है कि गतिशील रूप से प्रस्तुत करता है अलग अलग बीनने के आधार पर एक उपयोगकर्ता के पिछले चयन में है कि देखने के लिए. समस्या को देखने के लिए, निम्न कोड चलाएँ सिम्युलेटर में, बदलने pickerOneSelection के लिए "बीनने तीन" है, तो इसे वापस बदलने के लिए "बीनने" दो और को बदलने का प्रयास pickerTwoSelection. एप्लिकेशन को तुरंत दुर्घटना; विशिष्ट त्रुटि के साथ यह खिलौना उदाहरण है "धागा 1: EXC_BAD_ACCESS (कोड=1, पता=0x8)". किसी भी जानकारी का स्वागत है!
एक अलग रूप में, मैंने देखा है इन सवालों का: (SwiftUI श्रेणीबद्ध बीनने के साथ गतिशील डेटा दुर्घटनाओं) और (swiftUi : 2 बीनने एक स्क्रीन पर app दुर्घटना के साथ "अनुक्रमणिका श्रेणी से बाहर"), लेकिन यदि संभव हो तो, मैं की तरह से बचने के लिए परिवर्तित मेरी स्ट्रिंग चयन चर (pickerOneSelection, pickerThreeSelection) में integers, जो करना चाहिए तो अनुवाद किया जा सकता है में वापस पाने के लिए तार के साथ जुड़े पाठ उपयोगकर्ता के चयन. यदि यह संभव नहीं है करने के लिए मैं क्या कर रहा हूँ करने के लिए कोशिश कर के बिना सूचकांक चर है, अगर आप मदद कर सकता है मुझे समझ में क्यों, है कि बहुत मददगार होगा ।
import SwiftUI
struct ContentView: View {
@State var pickerOneSelection: String = "Picker Two"
@State var pickerTwoVisible: Bool = false
@State var pickerTwoSelection: Int = 3
@State var pickerThreeSelection: String = "Option 1"
var pickerOneOptions = ["Picker Two", "Picker Three"]
var pickerThreeOptions = ["Option 1", "Option 2", "Option 3"]
var body: some View {
NavigationView {
Form {
Picker("Picker One selection", selection: $pickerOneSelection) {
ForEach(pickerOneOptions, id: \.self) {
Text($0)
}
} // End of Picker 1
if pickerOneSelection == "Picker Two" {
HStack {
Text("Picker Two selection")
Spacer()
Button(String(pickerTwoSelection)) {
self.pickerTwoVisible.toggle()
}
} // End of HStack
if pickerTwoVisible {
Picker("Picker Two", selection: $pickerTwoSelection) {
ForEach(0..<32, id: \.self) {
Text(String($0))
}
}
.pickerStyle(WheelPickerStyle())
} // End of pickerTwoVisible
} else {
Picker("Picker Three selection", selection: $pickerThreeSelection) {
ForEach(pickerThreeOptions, id: \.self) {
Text($0)
}
} // End of Picker 3
}
} // End of Form
} // End of NavigationView
} // End of body
} // End of ContentView
बहुत धन्यवाद आपकी मदद के लिए और विशेषज्ञता!