2017-11-29 2 views
-1

Ich baue eine Todo-App. Ich möchte, dass der Benutzer Aufgaben sowie Kategorien für die Aufgaben erstellen kann. Ich habe ein Problem damit herauszufinden, wie die richtigen Aufgaben in der Tabellenansicht basierend auf welcher Kategorie angezeigt werden. Ich möchte auch, dass der Benutzer ein Fälligkeitsdatum auswählen kann.Todo App zeigt Aufgaben basierend auf Kategorie

Lets sagen, dass wir ein Array mit den Kategorien haben, var categories = ["Work", "Private"]

Wie würde ich speichern Sie die Aufgabe, die Kategorie für die Aufgabe und das Fälligkeitsdatum? Und dann Zugriff auf die richtige Aufgabe basierend auf welcher Kategorie es gehört.

wenn die Aufgabe die Kategorie "Home" -Druckaufgabe hat.

zuerst dachte ich über das Speichern in einem Wörterbuch var tasks = ["Category": "Task"], aber dann konnte ich nicht herausfinden, wie auf die richtigen Aufgaben basierend auf den Kategorien zugreifen. Ich habe versucht zu suchen, konnte aber die Antwort nirgends finden.

+1

Wenn Sie gerade erst angefangen haben, ist das Stellen von Fragen zu Stack Overflow nicht der richtige Ort für Sie. Sie sollten ein gutes Buch oder eine Reihe von Online-Tutorials finden. Betrachte [das \ [swift \] Tag-Wiki für einige Ressourcen] (http://stackoverflow.com/tags/swift/info). Wenn Sie an einem Apple-System arbeiten, können Sie auch [Gute Quellen zum Lernen von ObjC] (http://StackOverflow.com/q/1374660), das sich wirklich mit Cocoa-Programmierung beschäftigt, und viele der Artikel ansehen sind aktualisiert, um Swift zu verwenden. Viel Glück! –

Antwort

0

Eine Möglichkeit wäre, 1 Array und 1 Dictionary zu verwalten. Sie könnten ein Kategorie-Array haben (um eine bestimmte Reihenfolge zu erhalten) und dann das Wörterbuch verwenden, um die Aufgaben zu suchen, die in diese Kategorie fallen. So ist es etwa so aussehen könnte:

var categories: [String] = ["Work", "Private"] 
var tasks: [String : [String]] = ["Work" : ["Finish writing", "Go to lunch"], "Private" : ["Buy gifts for people who help me on Stack Overflow"]] 

diese Weise in Ihrem Tableview Datasource Methoden können Sie die numberOfSections gesetzt categories.count zu sein, und wenn es Zeit ist, die Anzahl der Zeilen, um herauszufinden, können Sie etwas tun, wie folgt:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    //Get the category that corresponds to this section of the tableview 
    let category = categories[section] 
    //Return the number of tasks in that category 
    return tasks[category].count 
} 

Dies ist nur ein Weg, dies zu tun - ich könnte die einfachste argumentieren, obwohl in Swift werden Sie hinzufügen müssen/entfernen/access Elemente im Wörterbuch sicher Abstürze zu vermeiden.

Verwandte Themen