2017-02-19 2 views
0

Ich möchte ein TableView auffüllen.Füllen Sie TableView aus Single-Array-Daten und mit mehreren Abschnitten

sind meine Daten innerhalb eines Arrays

var myDataArray = [DataEntry]() 

Der DataEntry -Typ ist ein Protokoll, wie zum Beispiel:

protocol DataEntry: class { 

    var idx: Int { get set } 
    var category: String { get set } 
    var title: String { get set } 
} 

Die Reihenfolge meiner Daten-Array ist, wie beispielsweise:

idx = 0: category = "Abschnitt0"/title = "Zeile0"

idx = 1: category = "Section0"/title = "Row1"

idx = 2: Kategorie = "Section0"/title = "Row2"

idx = 3: Kategorie = "Section1"/title = "ROW0"

idx = 4: Kategorie = "Section1"/title = "Row1"

idx = 5: Kategorie = "Section2"/title = "ROW0"

idx = 6: Kategorie = "Section2"/title = "Row1"

Wie bearbeite ich eine TabelleView f Aus diesem DatenArray? (Natürlich müssen die Abschnitte und Zeilen nach dem Inhalt des Arrays aussehen.)

Antwort

1

Es ist keine gute Idee, Abschnitte und Zeilen von einem einzigen Array aus zu füllen. Sie haben bereits bemerkt, dass es übermäßig kompliziert und überhaupt nicht stabil ist.

Der einzige Fall, in dem es möglich wäre, wenn Ihr Array immer die gleiche Anzahl von Zeilen in jedem Abschnitt (Abschnitt 1 immer 3 Elemente, Abschnitt 2 immer 2 usw.) hat. So können Sie immer den Offset kennen, mit dem Ihr Abschnitt beginnt (0 für Abschnitt 0, 3 für Abschnitt 1 usw.).

Wenn und nur wenn dies der Fall ist, können Sie es wie so tun

let offsets = [0,3,5] 
let dataEntry = myDataArray[offsets[indexPath.section]+indexPath.row] 

Aber ich kann das nicht genug betonen: Dies ist in keiner Weise eine gute Praxis und sollte vermieden werden insgesamt.

+0

Vielen Dank für die Erklärungen! Leider ist mein Array nicht immer in der Form, wie Sie es beschrieben haben. Deshalb muss ich eine andere Lösung finden. Was ist eine gute Praxis? In welche Form muss ich meine Daten bringen, um die TableView-Zellen mit 'dequeueReusableCell' und' indexPath.row' und 'indexPath.section' zu erstellen? Jede Hilfe wird geschätzt! – iKK

Verwandte Themen