Core Data: To-Many Relationship in NSTableView sortieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Core Data: To-Many Relationship in NSTableView sortieren

    Hallo Leute,

    als Neuling in Sachen Core Data habe ich ein Problem, die Instanzen einer To-Many Relationship ordentlich in einer NSTableView sortiert zu halten.

    Und zwar habe ich eine Entitiy "Category" und eine weitere "Card", je durch einen NSArrayController verwaltet. Category hat eine To-Many Relationship zu Card. Die beiden Attribute von Card sind number (int) und name (String) und sind an zwei Spalten einer NSTableView gebunden.

    So, was ich möchte: Der Nutzer kann die Karten durch Klick auf den jeweiligen Column Header nach Nummer oder Name sortieren. Wenn er eine neue Karte einfügt, dann soll diese in die letzte Zeile der Tabelle eingefügt werden. Sie soll also nicht direkt beim Einfügen auch sortiert werden, sondern erst beim erneuten Klick auf den Header.

    Was ohne Behandlung bislang passiert: Sortieren geht für den Moment, aber beim Einfügen einer neuen Karte springen alle Zeilen der Tabelle beliebig hin und her (was beim Löschen aber nicht passiert) und die neue Karte wird an beliebiger Stelle eingefügt.

    Leider weiß ich nicht, wie ich hier vorgehen soll. Das Problem ist wohl, dass der ArrayController seine Instanzen als Set vorhält.

    Für jede Hilfe bin ich sehr dankbar!

    Viele Grüße vom Grinch!
  • Edit: Es war tatsächlich das Problem, dass "Auto Rearrange Content" an war. Hab' es völlig übersehen. Einfügen und dergleichen geht nun ohne Probleme. Vielen Dank dafür!

    Was mir nun aber auffällt, ist, dass die Daten nach jedem Neustart des Programms unsortiert und keinesfalls in der Reihenfolge erscheinen, wie sie der Nutzer hinterlassen hat. Normal sortieren beim Neustart kann ich die Daten ja z.B. in 'awakeFromNib'. Aber wie bekomme ich die Reihenfolge, die der Nutzer z.B. durch (unsortiertes, manuelles) Verschieben der Einträge in der Tabelle verursacht hat, wiederhergestellt?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Grinch ()