Доступ к массиву по строковому значению - PullRequest
1 голос
/ 26 апреля 2020

У меня есть два типа массивов: один для хранения имени категории:

struct Category {
    var title : String
    var dataArrayName : String
}

var Categories = [
    Category(title: "First Title", dataArrayName: "firstDataArray"),
    Category(title: "Second Title", dataArrayName: "secondDataArray")
]

и другой для хранения данных категории:

var firstDataArray = [1, 2, 3, 4, 5] // Data Array 1
var secondDataArray = [6, 7, 8, 9, 10] // Data Array 2

Затем в tableView didSelectRowAt indexPath Я хочу получить доступ к firstDataArray по dataArrayName из Categories (к pu sh массиву данных к другому View Controller).

Я получаю значение dataArrayName через строку Categories[indexPath.row].dataArrayName, но я не знаю, как получить доступ к массиву, потому что я получаю результат String.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Я думаю, что вы можете установить «dataArrayName» с данными [Int]. Потому что, когда вы устанавливаете данные массива перед категориями, вы можете получить доступ к этой переменной следующим образом:

struct Category {
    var title : String
    var dataArrayName : [Int]
}

var firstDataArray = [1, 2, 3, 4, 5] // Data Array 1
var secondDataArray = [6, 7, 8, 9, 10] // Data Array 2

var categories = [
    Category(title: "First Title", dataArrayName: firstDataArray),
    Category(title: "Second Title", dataArrayName: secondDataArray)
]
1 голос
/ 26 апреля 2020

Вы, вероятно, должны обращаться к arrayData не по имени, это очень плохая практика в программировании. Вместо него используйте экземпляр Array, например:

struct Category {
    var title : String
    var dataArray : [Int]
}

var firstDataArray = [1, 2, 3, 4, 5] // Data Array 1
var secondDataArray = [6, 7, 8, 9, 10] // Data Array 2

var categories = [
    Category(title: "First Title", dataArray: firstDataArray),
    Category(title: "Second Title", dataArray: secondDataArray)
]

И, наконец, доступ к arrayData:

print(categories[indexPath.row].dataArray)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...