2016-04-11 4 views
0

Ich habe zwei Arrays:Swift: Für Schleifen (mit if-Anweisungen) bei cellForRowAtIndexPath

tasks = [a,b,c] und clType = [a,a,b,c,c,c]

Das Array tasks ist die gleiche wie clType aber ich entfernte die Dubletten mit einer for-Schleife, wenn Aussagen .

Jetzt möchte ich eine Tableview mit Abschnitten schaffen, wo jeder Abschnitt ein Element des tasks Array ist. In diesem Abschnitt sollten die Elemente des Arrays clType unter dem rechten Abschnitt gespeichert werden. Ich habe versucht, dies mit der for-Schleife folgt zu konfigurieren (s):

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) 
    print(clType) 
    for index in tasks.indices{ 
     if indexPath.section == index{ 
     for index1 in clType.indices{ 
      if clType[index1] == tasks[index]{ 
      cell.textLabel?.text = clType[index1] + ": " + taskName[index1] + " // " + dateStamp[index1] //Taskname and dateStamp are arrays with a matching index with regard to clType. 
      } 
     } 
    } 
} 

    return cell 
} 

Ich glaube, ich bin schon in die richtige Richtung, aber die Tableview ist nicht das Richtige anzeigt. Was ich jetzt sehe, ist drei Abschnitte (= richtig), aber jede Zeile in diesem Abschnitt ist gleich. Natürlich sind die Buchstaben (a, b, c) sind die gleichen in jedem Abschnitt, aber die taskName und dateStamp anders sein sollte.

Wie kann dieses Problem behoben werden. Ich weiß, dass mir etwas in der Logik fehlt, aber was?

+0

Haben Sie die äußere for-Schleife müssen? Können Sie nicht "index = tasks [indexPath.section]"? – onnoweb

+0

Wenn ich Ihre Frage richtig verstehe: Ich möchte 'index1' am Ende haben, weil das den richtigen Index für die Anzeige meines Arrays bestimmen würde. Das wäre also die innere Schleife? –

+0

einfach diesen korrekt zu erhalten, die Sie wollen ‚Aufgaben‘ die Abschnittsüberschriften und ‚CLTYPE‘ seine Reihe von ‚Aufgaben‘ im richtigen Abschnitt zu sein. Welche Kriterien bestimmen, in welchem ​​Abschnitt wir den 'clType' sortieren sollen? –

Antwort

0

Ich löste das Problem bereits von mir. Es wurde durch die Tatsache verursacht, dass die Schleife für jede Zeile eine Übereinstimmung mit dem ersten möglichen Index fand, der mit dem "Abschnittstitel" identisch war. Ich fügte hinzu, die folgenden:

.... 
if clType[index1] == tasks[index]{ 
     cell.textLabel?.text = clType[index1] + ": " + taskName[index1] + " // " + dateStamp[index1] //Taskname and dateStamp are arrays with a matching index with regard to clType. 
clType[index1] = "" //THIS IS WHAT I ADDED 
     } 

Also das nächste Mal über die Anordnung geschlungen, da an diesem Index nicht gewachsen war, aber am nächsten. Das ist was ich wollte.

Verwandte Themen