заполнить многомерный массив массива данными массива - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть несколько массивов, которые я заполняю данными в моем приложении. Поэтому, когда я инициализирую его, массивы - до некоторой степени - пусты.

Когда мои массивы заполнены всеми необходимыми данными, я хочу сохранить их в многомерном массиве, чтобы заполнить таблицу этими данными, упорядоченными по разделам.

Однако я пытаюсь добавить этот многомерный массив с данными.

Вот что я хочу получить в конце моего многомерного массива:

data in myServerInfo: 

serverInfo(
    [ping: "www.apple.com", serverStatusMain: "no data", statusImagesMain: "error"],

    [ping: "www.google.com", serverStatusMain: "no data", statusImagesMain: "error"],

    [ping: "www.amazon.com", serverStatusMain: "no data", statusImagesMain: "error"],

    [ping: "www.bla.com", serverStatusMain: "no data", statusImagesMain: "error"]
    )

Моя текущая реализация выглядит так:

struct serverInfo {
    var pings: String
    var serverStatusMain: String
    var statusImageMain: String
}

var myServerInfo: [[serverInfo]] = []


let pings = ["www.apple.com", "www.google.com", "www.amazon.com", "www.bla.com"]
var statusImagesMain = ["error", "error", "error", "error"]
var serverStatusMain = ["no data", "no data", "no data", "no data"]

for i in serverStatusMain { //
    myServerInfo.append([serverInfo(pings: pings[i], serverStatusMain: serverStatusMain[i], statusImageMain: statusImagesMain[i])])
}

1 Ответ

0 голосов
/ 05 сентября 2018

Вы должны добавить это так.

for i in 0..<serverStatusMain.count {
    myServerInfo.append(serverInfo(pings: pings[i], serverStatusMain: serverStatusMain[i], statusImageMain: statusImagesMain[i]))
}

Вы сделали 2 ошибки:

  • Вам нужно i, чтобы иметь индекс массива для его итерации.

  • Вам необходимо добавить экземпляр массива, для которого вам не нужно заключать его в [].

Однако, если вам нужно добавить массив, вы можете сделать это, используя другой метод добавления.

myServerInfo.append(contentsOf: serverInfoArray) // serverInfoArrat would be an array -> [serverInfo]
...