NSFetchResultController mit zwei sections erzwingen mit row = 0

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

  • NSFetchResultController mit zwei sections erzwingen mit row = 0

    Hallo,

    ich habe in meinem Projekt einen TableViewController in dem ich zwei sections benötige. Der TableViewController wird dynamisch mittels CoreData und einer Usereingabe gefüllt. Ich habe den TableViewController so aufgebaut, dass die Usereingaben durch die SectionHeader durchgeführt werden. Es gibt zwei Arten von Einträge, welche durch einen Integer-Wert und einen sectionNameKeyPAth gefiltert werden, somit wird dann der FRC mit zwei sections erzeugt.

    Jetzt zu meinem Problem, wenn es in CoreData noch keine Daten für den TableViewController bzw. für den FRC gibt wird folgender FRC erzeugt:

    section: 0 row: 0

    Wie man sieht gibt es keine zweite section, was natürlich meine UI komplett unnutzbar macht.

    Dieses Problem dachte ich habe ich wie folgt gelöst:

    Quellcode

    1. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    2. {
    3. // Return the number of sections.
    4. return 2;
    5. }


    Soweit läuft es auch, es werden die beiden SectionHeader sauber angezeigt, aber wenn ich jetzt in die section(1) einen Datensatz hinzufügen will kommt folgender Fehler:

    Quellcode

    1. ​2014-11-15 21:30:31.941 iTravel[21224:1733630] CoreData: error: Serious application error. An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:. Invalid update: invalid number of sections. The number of sections contained in the table view after the update (2) must be equal to the number of sections contained in the table view before the update (2), plus or minus the number of sections inserted or deleted (1 inserted, 0 deleted). with userInfo (null)


    An sich verstehe ich auch was der Fehler mir sagt, laut CoreData gibt es nur einen section, nämlich die section(0) und es muss die section(1) erzeugt werden, somit sollte es vor dem hinzufügen einen Gesamtanzahl an section von eins geben und nach dem hinzufügen eine Anzahl von zwei. Da ich aber dem TableViewController per Hand gesagt habe das er schon zwei section hat, sieht der TableViewController das er sich nicht verändert und wirft die Fehlermeldung aus.

    Jetzt zu meiner Frage, kann ich den FRC so erstellen das er bei der ersten Erzeugung schon wie folgt gefüllt ist?

    section: 0 row: 0
    section: 1 row: 0

    Danke

    Gruß

    Bongartz
    Vielen Dank

    Gruß

    Bongartz