Как получить данные внутри оператора if / else в Swift

#arrays #swift #if-statement #view #viewcontroller

#массивы #быстрый #if-statement #Вид #viewcontroller ( контроллер просмотра)

Вопрос:

У меня есть два pickerViews в ViewController и Struct где я создал функцию, которая будет получать данные PickerViews. В didSelectRow функции PickerView я написал приведенный ниже код.

 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        if pickerView == fromPickerViewRolled {
            let optionArray1 = currencyManager.currencyArrayOption1[row]
        }
        else if pickerView == toPickerViewRolled {
    
            let optionArray2 = currencyManager.currencyArrayOption2[row]   
        }
    }
 

Как я могу получить данные optionArray1 и ..Array2 вне if / else, чтобы я мог использовать в функции. Любая помощь будет оценена. С нетерпением жду ответа.

Комментарии:

1. Можете ли вы показать, как вы хотите его использовать?

2. У вас есть более 2 представлений выбора? Если нет, вы можете использовать троичный оператор, let optionArray = pickerView == fromPickerViewRolled ? currencyManager.currencyArrayOption1[row] : currencyManager.currencyArrayOption2[row] а затем использовать optionArray в остальной части кода в функции

3. У меня есть только два вида выбора, не могли бы вы написать в формате кода, как я.

4. Просто замените свой if / else на мой код

Ответ №1:

Вы просто можете объявить массив вне блока оператора if. Вот так :

 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    var currencyArray: [YourType] = []
    if pickerView == fromPickerViewRolled {
        currencyArray = currencyManager.currencyArrayOption1[row]
    }
    else if pickerView == toPickerViewRolled {
        currencyArray = currencyManager.currencyArrayOption2[row]
    }
    dump(currencyArray)
}
 

Комментарии:

1. Я создаю приложение, которое имеет 2 вида выбора, у них есть 2 массива с валютами, у меня есть два массива с валютой, после получения входных данных из представлений выбора, когда я передаю значение в getFun(currency1: currencyArray, currency2: currencyArray), когда я печатаю URL-адрес, он выдает мне то же самое значение, например: EUR_EUR. Не могли бы вы, пожалуйста, помочь, как получить значение отдельно, чтобы я мог использовать в строке url, подобной этой free.currconv.com/api/v7 /…

2. Ваш комментарий не имеет отношения к вашему вопросу. Пожалуйста, попросите нового, если это необходимо. Подтвердите это, если ответите на ваш вопрос