KVB - Problem mit NSArrayController

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

  • KVB - Problem mit NSArrayController

    Hi,

    ich brauche mal wieder hilfe.

    Ich lade aus einer Sql-Datenbank in ein NSMutableArray ein paar Tabellen und dessen Inhalte. Über einen NSArrayController zeigt es brav den Inhalt in einer Tableview. Jetzt kommen wir zum Problem. Sobald man im Tableview etwas editiert, bekomme ich den Error kein key value binding. Bzw dass er den Key dafür nicht finden kann.

    Löse ich das Problem indem ich ein NSMutableDictonery nutze ? Wenn ja wie ? Ich möchte , dass beim Editieren einer Zelle auch der Eintag in der Sql-DB geupdatet wird.

    Ich glaube ich habe mich sehr umständlich ausgedrückt oder ?

    Wenn es einer verstehen kann, wäre ich erfreut über etwas hilfe.

    Danke
  • Hi Neo,

    Wenn Du unbedingt mit SQL arbeiten willst, dann ist der Weg ein wenig steinig :) Du must dann quasi jeden Setter von Hand schreiben und in dem dann die DB updaten. Überlege Dir ob nicht CoreData besser geeignet ist. Da geht das alles voll automatisch sogar inklusive Undo und und und. Man braucht zwar ein paar Tage Einarbeitungszeit aber das lohnt sich dann auch. Ich habe mich auch lange dagegen gewehr und immer SQL benutzt weil ich es kannte aber seit ich mich einmal in CD reinquälen musste mag ich es nicht mehr missen.

    Ich weiß nicht wie Dein MutableArray aussieht aber du solltest die Klasse des Inhaltes (also z.B. NSString) ableiten und eine eigene Klasse erstellen. Damit kannst Du dann in den Settern dein DB Update machen.

    Alternativ kannst du auch eine DB Controller-Klasse erstellen, welche ein KVO auf die Objekte Deines Array hat und bei einer Änderung benachrichtigt wird und dann die Array speichert. Da führen mehrere WEge nach Rom.

    Die Bindings sollten auf jeden Fall gehen aber es ist schwer herauszufinden was Du falsch gemacht hast, vor allem weil man das ja alles im IB einstellt und irgendwie keinen Code dazu posten kann. Am besten suchst du nochmal nach einem Tutorial dafür und vergleichst das Step by Step.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Danke für die Anwort. Genau diese Antwort habe ich befürchtet. Ich verstehe CD nicht und daher mag ich es nicht.

    Ich habe jetzt CD in mein Projekt eingebaut. Und dazu MagicalRecord welches ich so einbinde:

    Quellcode

    1. - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    2. {
    3. [MagicalRecord setupCoreDataStack];
    4. _managedObjectContext = [NSManagedObjectContext MR_defaultContext];
    5. }


    Und nun bleiben leider die NSTableViews leer ;(

    Natürlich habe ich einen ArrayController der mit dem managedObjectContext verbunden ist. Auch die Bindings stehen zu den Views stehen. Genau deshalb mag ich es nicht. Kein Fehlermeldung nichts .




    Natürlich würde ich mich über ein Bespiel,Link oder Hinweis zu einem NSArrayController freuen, den ich mit key und value bearbeiten kann. Oder ein NSDictonaryController. Ich finde im Netz nichts passendes.

    Danke

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