Frage zu CoreData

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

  • Frage zu CoreData

    Hi zusammen,
    mal ne allgemeine Frage zum Handling.

    Angenommen ich habe in meinem Projekt eine Klasse Entry.

    Über einen Webservice beziehe ich nun die Daten und erzeuge jedes mal ein Object der Klasse Entry und speichere es in einem Array.
    Soweit sogut, möchte ich aber nun meine App um eine Favoritenfunktion erweitern und diese Entry mittels CoreData speichern, kann ich ja als Namen nicht nochmal Entry nehmen und muss aus meiner Ursprünglichen Klasse eine NSManagedObject-Klasse erstellen.

    Also als Beispiel:


    Quellcode

    1. - (void)saveAsFavorite
    2. {
    3. Entry *entry = self.entryArray[indexPath.row];
    4. CD_Entry *cdEntry = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([CD_Entry class]) inManagedObjectContext:self.managedObjectContext];
    5. cdEntry.attribut = entry.attribut;
    6. ...
    7. cdEntry.letztesAttribut = entry.letztesAttribut;
    8. }



    Gibt's dafür nichts schöneres als 2 Klassen pflegen zu müssen?
    Klar, ich könnte meine Daten vom Webservice auch im Dictionary vorhalten und damit hantieren, find ich aber unschön ...

    Bin über Tips sehr dankbar!

    Danke, sonniges Wochenende
    matz
  • matz schrieb:

    Gibt's dafür nichts schöneres als 2 Klassen pflegen zu müssen?
    Du könntest Dir die Arbeit zumindest etwas vereinfachen, indem Du einen Convenience Allocator/Designated Initializer schreibst, der Dein Entry Objekt entgegen nimmt und die entsprechenden Werte in Dein MOFavoriteEntry einträgt.
    Ansonsten: Eher nein.

    Wobei ich den Sinn der Zweiteilung nicht versehe.
    Es wäre doch wesentlich einfacher, alle Entries in einem MOEntry zu verwalten.

    Du kannst Dir dann ja überlegen, ob das nur ein Attribut 'isFavourite' bekommt oder Du noch ein paar Favorite Listenobjekte nach Schema 'Name:Einträge' anlegst.

    Mir ist halt nicht ganz klar, warum Du einen Teil der Einträge persistieren möchtest (Favoriten) und einen Teil nicht.
    Sofern Du an der Sache festhalten möchtest, wirst Du um zwei völlig unterschiedliche Objekte nicht umhin kommen.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Es kommt son bischen auf die Größenordnung an. Du kannst z.B. auch einfach das JSON oder XML (ka was Du vom Webservice bekommst) einfach genau so in eine Entitiy schreiben und dann beim laden über den gleichen Parser schicken wie der der den Webservicve parst. Keine sehr schöne Lösunf aber eine sehr einfache. Der Parser bekommt dann halt die Daten entweder von CoreData oder vom Webservice. Alles andere ist 1:1 Code.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)