Индекс 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 . Когда я выбираю первые данные и выбираю второе текстовое поле, чтобы выбрать второе, оно работает нормально, пока я не выберу те данные, у которых номер строки больше, чем у первого текстового поля, и, как вы можете видеть, я объявил, что если он выберет первый или второе текстовое поле, чтобы вернуть другой номер для строки!

0 ответов

Другие вопросы по тегам