Eine oder mehrere plists?

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

  • Eine oder mehrere plists?

    Hey,
    ich habe eine plist mit Dictionaries in welchen sich Array befinden und darin wieder Dictionaries.
    Der Aufbau ist dabei immer gleich und in etwa so:

    Dictionary 0
    -- Array 0
    ---- Dictionary 0
    ---- Dictionary 1
    -- Array 1
    ---- Dictionary 0
    ---- Dictionary 1
    Dictionary 1
    -- Array 0
    ---- Dictionary 0
    ---- Dictionary 1
    -- Array 1
    ---- Dictionary 0
    ---- Dictionary 1
    usw.

    In Der plist habe ich gut 50 Dictionaries mit so einen Aufbau und darin gut 20 Arrays mit so einem Aufbau und in den Arrays nochmal 5 weiteren Dictionaries.
    Also auf jeden Fall über 1000 Einträge.
    Je nachdem was der Benutzer anklickt sollen nun die Werte von Key X mitsamt seinen Arrays und Dictionaries "gelesen" werden. Um dies zu bewerkstelligen muss ich ja egal was der Nutzer anklickt jedes mal alle Einträge laden und in einem Dictionary speichern.
    Ich kann mir vorstellen dass dies recht lange dauern könnte, darum frage ich mich ob es nicht vielleicht sinnvoller wäre die plist ist 50 plists zu unterteilen und dann immer nur die zu laden welche gerade eben nötig ist.
    Wäre dies für die Performance sinnvoller oder nimmt sich das nichts?

    Ich hoffe, ich hab verständlich erklärt was ich meine.
  • Hallo,

    das ist nicht sehr umfangreich und über Performance mußt Du Dir da noch gar keine Sorgen machen.

    Warum baust Du Dir nicht einfach eine Klasse "DataController", dessen Instanz die Daten hält und die anderen Objekte damit versorgt.
    Somit werden die Daten nur einmal geladen und können permanent, ohne erneutes Einlesen, sofort an passender Stelle angeboten werden.

    Viele Grüße
  • gritsch schrieb:

    wenn in allen dicts etwa die gleichen keys verwendet werden könntest du das ganze ja einfach zb eine SQLite-DB legen. die keys wären dann eben columns einer table.

    Mir war bisher gar nicht bewusst, dass man eine lokale SQLite-DB so ohne weiteres hinzufügen kann, definitiv ziemlich nützlich.

    little_pixel schrieb:

    Warum baust Du Dir nicht einfach eine Klasse "DataController", dessen Instanz die Daten hält und die anderen Objekte damit versorgt.
    Somit werden die Daten nur einmal geladen und können permanent, ohne erneutes Einlesen, sofort an passender Stelle angeboten werden.

    DIe App soll mehr können als nur mit den Daten aus der plist arbeiten zu können. Wenn der Nutzer nun also zwischendurch was anderes macht, oder auch die App neustartet, müsste die Instanz doch jedes mal auch wieder erstellt werden und somit auch die Daten neu eingelesen werden, oder irre ich mich da?
  • Ich werfe mal 'Core Data' in die Runde, weil das nach einer Aufgabe genau dafür geradezu schreit.
    Die Sache mit der SQLite Datenbank habe ich mal großzügig überlesen. +am spontanen Ausschlag herumkratz+

    Überhaupt finde ich den Ansatz alles Andere als übersichtlich.
    Lässt sich das ganze Gewäsch denn nicht in ordentliche Objekte modellieren?

    Ich habe auch so einige Projekte, in denen ich total überzeugt von den Möglichkeiten der Dictionaries und Property Lists war. Ein halbes Jahr später draufgeguckt und dann konnte ich mir erst mal an Hand der Implementierung und der Property Lists ins Gedächtnis rufen, wie ich mir den Kram damals™ eigentlich gedacht hatte.
    Ausgesprochen ungeil das Ganze und beim Erweitern krachte es an allen möglichen Ecken und Enden.
    «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
  • Butterkeks schrieb:

    Ich habe mich mit Core Data bisher nicht beschäftigt und meinte irgendwo mal gelesen zu haben, dass es sich nur lohnt wenn man viele Entitäten und Relationships hat.

    Das hängt immer vom Anwendungsfall ab, und hat weniger mit der Datenmenge zu tun. Für die Implementierung komplexer Datenmodelle hat Core Data allerdings einige Vorteile.
    „Meine Komplikation hatte eine Komplikation.“
  • Automatisches Persistieren, bei Bedarf geladene Objekte und ein Objektgraph anstatt Datensatzgeraffel lohnt sich in meiner kleinen Welt immer. :)
    «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