#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. Ваш комментарий не имеет отношения к вашему вопросу. Пожалуйста, попросите нового, если это необходимо. Подтвердите это, если ответите на ваш вопрос