Динамический или универсальный массив типов в Swift - PullRequest
0 голосов
/ 15 мая 2018

Я застрял между Array типом. То, что я хочу сделать, это обнаружить Array тип времени выполнения при вводе значений.

У меня есть один пользовательский класс, определяющий UIPickerView, и я хочу передать datasource на основе требований, что иногда значения могут быть String, Int или Double. Так что, определенно, я не могу дать определение, как показано ниже, потому что приведение типов будет проблемой.

var arrFirstComponent = [Any]()

Поэтому мне нужно решение, например, когда я передаю значение Int, тип Array становится Int, а когда я передаю String, он становится массивом String или чем-то еще.

Может ли кто-нибудь помочь мне в этом? Я серьезно не знаю, как этого добиться.

P.S. Я видел много ответов, которые наследуют протоколы, но я не нахожу достойными.

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете попробовать что-то вроде этого:

class PickerView<T> {
    var arrFirstComponent = [T]()
    // Your picker view code
}

let intPickerView = PickerView<Int>()
intPickerView.arrFirstComponent = [1, 2, 4]

let stringPickerView = PickerView<String>()
stringPickerView.arrFirstComponent = ["First", "Second", "Third"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...