Core Data binding und MVC

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

  • Core Data binding und MVC

    Hallo,

    ich habe habe mir coreData mal angeschaut und ein bisschen probiert.

    wenn ich ein Datensatz, ich nenn es jetzt einfach mal so, in CoreData anlege mit ein button funktioniert das auch. Da ich das mit Bindings gemacht habe, habe ich ja gar keine Möglichkeit die Funktion des Buttons zu erweitern, da die Sent Action schon vergeben ist. Ist das Richtig?

    Nun wollte ich mir mal im Netz ein Tutorial zu coreData und MVC anschauen kann aber nichts richtiges finden. Ich bräuchte mal ein Beispiel wie ich ein wert in CoreData eintrage was ich im MVC mach, also ohne bindings.

    Ich hoffe ihr versteht mich, ist alles bissel neu für meiner einer.

    LG
  • Ja mache ich ja schon. Das geht auch alles. Ich will eigentlich nur, wenn ich ein Datensatz anlege, mit einen Button, das der Button noch einen andere Aktion mit ausführt. In meinem Fall soll er noch ein HUD-Fenster mit aufruft.
    Ich habe dafür auch eine ManagedObjectClass angelegt und mit awakeFromInsert einen Wert vorgegeben. Das geht auch alles. Nun wollte ich gern an dieser stelle gleich das HUD mit laden lassen. Ich weiß auch das ich hier anscheint durch den Einfluss durch andere Sprachen versaut bin.

    In den Tutorials geht es hauptsächlich um Bindings, Ich habe hier auch ein Buch von Kai surendorf und Markus Hardt. Darin gibt es ein Kapitel wo coreData mit MVC realisiert wird. Nur leider macht mich das Buch irre. Um so tiefer man kommt um so mehr wird man hier von Kapitel zu Kapitel verwiesen, so das mir der Daumen schon ganz wund ist. Ich habe das auch soweit verstanden nur fehlt leider in den Buch dann wieder eine Erklärung wie ich beim Aufruf des Programm zb. beispiel den Textview mit den vorhanden Daten aus coreData fülle. Geht immer alles nur mit Knopfdruck.

    Im Netz finde ich immer nur coreData mit Bindings, und keine Bindings die ich mit eignen Klassen erstelle. Oder wenn ich dann ansatzweise was finde fehlt immer irgendwas. :D
  • Da ich in NL bin, kann ich es gerade nicht aus meinem Buch zitieren. Aber der "Trick" liegt darin, dass du eine eigene Actionmethode schreibst und darin
    1. Das neue Objekt anlegst
    2. Den Kram machst, den du machen willst.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Fruchtgummi schrieb:

    Hab mir Band 1 bestellt... Mal ne Frage bis es da ist. Kann ich die Action eines Button, in mein Fall add: durch ein anderen Button aufrufen, also aus dem MVC herraus?.

    Das ist nicht die Action eines Buttons, sondern eine Action eines Controllers, die von Button1 aufgerufen wird. Da der Sender häufig nicht interessiert, kannst du die auch von Button2 aus aufrufen. Und aus dem Code … Nur wozu hast du zwei Buttons, die dieselbe Action ausführen?!
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Fruchtgummi schrieb:

    Hab mir Band 1 bestellt... Mal ne Frage bis es da ist. Kann ich die Action eines Button, in mein Fall add: durch ein anderen Button aufrufen, also aus dem MVC herraus?.

    Das ist nicht die Action eines Buttons, sondern eine Action eines Controllers, die von Button1 aufgerufen wird. Da der Sender häufig nicht interessiert, kannst du die auch von Button2 aus aufrufen. Und aus dem Code … Nur wozu hast du zwei Buttons, die dieselbe Action ausführen?!


    Wenn Du den Buttons z.B. Tags gegeben hast, kann es durchaus Sinn machen sie die gleiche Action aufrufen zu lassen und in der Action nur anhand der Tags unterschiedlich zu verfahren.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Verstehe ich richtig: wenn ein neues Objekt abgelegt wird, soll ein HUD Fenster geöffnet werden, falls es nicht schon offen ist?
    Sieh' dir mal NSNotifications an. Damit könntest Du es so machen:
    - Controller, der das HUD Fenster kontrolliert, für Notification registrieren
    - awakeFromInsert in NSManagedObject überschreiben und NSNotification posten
    - HUD Controller erhält Notification, prüft, ob das HUD offen ist und setzt dort die Werte des mit der Notification mitgesandten ManagedObjects.

    Dann funktioniert das Ganze "immer" auch wenn so ein MO mal auf eine andere Weise angelegt wird.

    No.
  • Thallius schrieb:

    Amin Negm-Awad schrieb:

    Fruchtgummi schrieb:

    Hab mir Band 1 bestellt... Mal ne Frage bis es da ist. Kann ich die Action eines Button, in mein Fall add: durch ein anderen Button aufrufen, also aus dem MVC herraus?.

    Das ist nicht die Action eines Buttons, sondern eine Action eines Controllers, die von Button1 aufgerufen wird. Da der Sender häufig nicht interessiert, kannst du die auch von Button2 aus aufrufen. Und aus dem Code … Nur wozu hast du zwei Buttons, die dieselbe Action ausführen?!


    Wenn Du den Buttons z.B. Tags gegeben hast, kann es durchaus Sinn machen sie die gleiche Action aufrufen zu lassen und in der Action nur anhand der Tags unterschiedlich zu verfahren.

    Gruß

    Claus

    Ja, teilweise macht es das Formatmenü so, teilweise über eigene Actions. Ist aber deutlich die Ausnahme. Du bekommst so unsichtbare Abhängigkeiten (Attribut-/Codekonstanten). Eckelig.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ui, war nicht da!

    Ja also ich komme nur schleppend voran. also das ich eine Action von verschiedenen Buttons aufrufen kann ist mir schon klar.

    Wenn ich ich coreData mit den"normalen" Bindings anspreche geht das ja auch alles wie. Ich habe den Knopf mit add: des Array Controller verbunden. Drück ich da drauf macht er das... Nun wollte ich einfach das add: mit einer Funktion erweitern zb öffne HUD - what ever. Und das kann ich nur, soweit ich das richtig verstanden habe, realisieren, wenn ich die Abfragen, die als Bindings existieren, im MVC selbst erstelle. Also den array-controller (class) selbst anlege, der dann die Persistenz übernimmt. Ja und das muss ich erstmal verstehen wie man das macht, obwohl ich nicht mal richtig verstehe, was ich hier eigentlich hier schreibe. :)

    Habe in der letzten Woche einiges gelernt. Es reicht aber noch nicht.

    Armin dein Buch ist vorgestern gekommen. Daraus gelernt. Ich finde schön wie du das schreibst und auch die Gedankengänge mit übernimmst. Habe mich auch deine "Trick" angeschaut. Leider muss ich das bis zu dieser Stelle wohl erstmal alles durcharbeiten. Da hier schon zu viele Sachen mit drannnnnnn sind. Ich suche einfach ein tablevie mit ein knopf da steht anlegen drauf wenn drauf drück legt er das an. :)