Swift - TableViews mit mehreren Abschnitten aus einem mehrdimensionalen Array füllen

Ich bin ein Anfänger in Swift und habe es geschafft, zumindest die Grundlagen zum Auffüllen einer UITableView zu verstehen. Ich bin jetzt festgefahren, mehrere Abschnitte mit Daten aus einem Wörterbuch zu füllen.

Ich habe ein mehrdimensionales Wörterbuch, das Objekte zu Kategorien zuweist:

var categoryDict:[String:[AnyObject]] = ["Category A": ["Object 1","Object 2"], "Category B":["Object 3"]]

Jetzt möchte ich meine TableView füllen, damit sie ungefähr so aussieht:

Kategorie A

Object 1Object 2

Kategorie B

Object 3

Bisher kann ich ein Array von Kategorien erstellen, um die Anzahl der Abschnitte zurückzugeben und die im Wörterbuch gespeicherten Arrays zu zählen, um die Anzahl der Zeilen in jeder bestimmten Kategorie zu ermitteln. Jetzt kann ich die TableView nicht mehr mit Abschnitten und Zeilen füllen. Wie kann ich das machen? Vielen Dank

Mein Code bisher:

var categoryList:[String] = [String]()
var categoryDict:[String:[AnyObject]] = ["Category A": ["Object 1","Object 2"], "Category B":["Object 3"]]


func getLists() {
    categoryList = Array(categoryDict.keys)
    categoryList.sortInPlace(before)
}

// Sort Array
func before(value1: String, value2: String) -> Bool {
    return value1 < value2;
}

func getNumberOfEntrysInSection (Section: Int) -> Int {

    let category:String = categoryList[Section]    //Get Category for Index in CategoryList

    let value:[AnyObject] = categoryDict[category]! //Get Value for this specific Category

    let number = value.count

    return number
}


// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    getLists()
    return categoryList.count
}


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return getNumberOfEntrysInSection(section)
}


override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return categoryList[section]
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("BufferCell", forIndexPath: indexPath)

    ???
    return cell
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage