8 Stimmen

Bewährte Praxis? iphone: Daten synchronisieren

Ich arbeite an einem Projekt, bei dem es um die Visualisierung von Daten geht.

Mein ultimatives Ziel ist es, dass ich eine Reihe von Daten mit dem Download der iPhone-App ausliefere. Aber ich möchte es mit einem Backend verbunden, dass, wenn das iPhone eine Verbindung mit dem Internet hat. es kann die Änderungen aus dem Backend synchronisieren.

Die Synchronisierung ist kein Problem und auch nicht die Verbindung zwischen dem Backend und dem iphone.

Aber was sollte ich als Datenspeicher auf meinem iPhone verwenden? Was ist der beste Weg? Meine Daten sind reine Textdaten und müssen nicht sicher sein.

Die Hauptfunktion sollte jedoch darin bestehen, bestimmte Teile der Daten zu aktualisieren (das Hinzufügen und Löschen von Daten ist nicht so wichtig).

Was ist also die einfachste (sprich: am wenigsten zeitaufwändige Entwicklung) oder die beste Methode?

  • sqlite?
  • plist?
  • ..?

3voto

rpetrich Punkte 32030

Die besten Ergebnisse lassen sich wahrscheinlich mit SQLite erzielen. Sie können die ursprüngliche Datenbank in der Anwendung selbst speichern und in den Ordner "Dokumente" kopieren. Fordern Sie beim Starten Deltas vom Server an, um die Datenbank synchron zu halten. Für eine einseitige Synchronisierung sollte es ausreichen, ein Versionsfeld zu speichern und dann den Server nach den SQL-Anweisungen zu fragen, die für diese Version ausgeführt werden sollen.

0voto

Brian Ferris Punkte 6742

Für eine kleine Datenmenge (d.h. Sie würden sich wohlfühlen, wenn Sie alles in den Speicher laden würden), würde ich die Daten mit dem NSUserDefaults-Persistenzmechanismus speichern, der die Serialisierung und Speicherung von Standarddatenstrukturen beim Starten und Herunterfahren der Anwendung leicht handhaben kann. Es ist sehr einfach/schnell zu verwenden.

Für größere Datenmengen, die nicht auf einmal in den Speicher geladen werden sollen, erscheint Sqlite sinnvoll.

0voto

Mark Thistle Punkte 1871

Ein anderer Ansatz wäre, die NSDictionary-Methode writeToFile zu verwenden, mit der ein NSDictionary geschrieben wird (das klingt, als würde es Ihre Speicheranforderungen erfüllen). Dann, um die Daten beim Start wieder aufzufüllen, würden Sie einen Pfad zur Plist-Datei erhalten (geschrieben von writeToFile) und dann das NSMutableDictionary initWIthContentsOfFile: path.

Werfen Sie einen Blick in "iPhone SDK Application Development" von Jonathan Zdziarski auf Kapitel 11: Application Settings. Oder werfen Sie einen Blick auf das ausführlichere Kapitel "File and Data Management" in Apples iPhone Application Programming Guide.

Ich war im selben Boot wie Sie und dachte, ich bräuchte SQLLite, um Daten zu speichern, die von einem Webdienst heruntergeladen wurden. Ich habe den Webdienst durch einen einfacheren Prozess ersetzt, der JSON-Anforderungen verarbeitet und meine Daten in einem NSDictionary-Format zurückgibt. Dann verwende ich das JSON SDK 2.2 für das iPhone, um die eingehenden JSON-Daten zu übernehmen und in einem NSDictionary zu speichern. Wenn ich dann die Daten wie oben erwähnt in der plist speichern kann, ist das kein Problem.

Das funktioniert bei mir, aber je nachdem, was Sie mit Ihren Daten machen, brauchen Sie vielleicht etwas anderes.

Viel Glück!

0voto

Forrest Punkte 112733

Plist ist sehr einfach zu verwenden. siehe http://github.com/samsoffes/iphone-plist

Hier ist ein Beispielprojekt zur Verwendung von GAE mit plist. http://www.ibm.com/developerworks/web/library/wa-aj-iphone/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X