Индекс uipickerview вне диапазона
Я пытаюсь научиться кодировать Swift, и недавно я столкнулся с ошибкой, которая так смущает. У меня есть 2 текстовых поля, которые оба связаны с видом сборщика.
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if EntCity.isEditing
{
return MainCities[row].name
}
return MainJ[row].name
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if EntState.isFirstResponder
{
EntState.text = MainJ[row].name
Global_Addresses.global_address.cityID_fromState = MainJ[row].id
GetCities()
}
if EntCity.isEditing
{
if (EntState.text?.isEmpty)!
{
DispatchQueue.main.async {
self.DisplayMessage(UserMessage: "ابتدا استان را انتخاب کنید")
}
}
else
{
EntCity.text = MainCities[row].name
Global_Addresses.global_address.smallCityID = MainCities[row].id
}
}
EntState.text = MainJ[row].name
Global_Addresses.global_address.cityID_fromState = MainJ[row].id
GetCities()
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return MainCities.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return MainCities[row].name
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
EntCity.text = MainCities[row].name
Global_Addresses.global_address.smallCityID = MainCities[row].id
print("?????????????????????")
print(Global_Addresses.global_address.smallCityID)
}
}
код работает нормально, и оба текстовых поля могут отображать данные в представлении выбора для выбора. эти текстовые поля связаны, это означает, что вам нужно выбрать одну из строк в текстовом поле № 1, чтобы получить данные для текстового поля № 2 . Когда я выбираю первые данные и выбираю второе текстовое поле, чтобы выбрать второе, оно работает нормально, пока я не выберу те данные, у которых номер строки больше, чем у первого текстового поля, и, как вы можете видеть, я объявил, что если он выберет первый или второе текстовое поле, чтобы вернуть другой номер для строки!