2009-09-18 4 views

Antwort

2

Es hängt wirklich davon ab, was Sie wollen. Beide sind absolut akzeptabel. Wenn Ihr Spielstatus sehr komplex ist, ist die Verwendung einer Datei möglicherweise einfacher (nehmen Sie Ihren Spielstatus und kodieren Sie ihn mit einem NSKeyedArchiver oder etwas). Wenn Sie jedoch ein einfaches Spiel haben (der Spieler ist auf dieser Ebene an dieser Position), dann wäre SQLite eine gute Option.

Wenn Sie das Beste aus beiden Welten möchten, sollten Sie auch die Verwendung von CoreData in Betracht ziehen.

3

Wenn Sie Ihre Spieldaten häufig suchen/sortieren müssen oder in der Regel nur eine Teilmenge der Daten gleichzeitig laden, sollten Sie SQLite in Betracht ziehen.

Wenn Sie Ihr Objektdiagramm einfach auf dem Datenträger speichern und das gesamte Objekt beim Start neu laden müssen, verwenden Sie NSCoder, um Ihre Spielobjekte in einer Datei zu archivieren (standardmäßig wird es als Binärdatei gespeichert).

Wenn Sie Spieldaten mit einem Server oder einem anderen System austauschen müssen, können Sie ein Serialisierungsformat wie XML oder JSON betrachten.

1

Für ein RPG müssen Sie wahrscheinlich Elemente aus einem großen Datensatz als Teil der internen Funktion des Spiels selbst durchsuchen und abrufen. Daher sollten Sie entweder SQLite verwenden (wenn Sie OS 2.x als Ziel haben)) oder Core Data (falls dies auf OS 3.x abzielt). Da Sie ohnehin eine Datenbank zum Laden Ihrer Spiel-Assets verwenden, ist es nur sinnvoll, diese zum Speichern zu verwenden. Für ein RPG werden Sie wahrscheinlich eine große Menge an Daten für den Spielstatus laden und speichern, für die eine Datenbank schneller ist als eine normale Datendatei.

Mit Core Data können Sie ein komplexes Objektdiagramm verwalten, ist schneller als SQLite, kann viel weniger Speicher verwenden und ist viel einfacher zu programmieren, ist aber nur auf iPhone OS 3.x verfügbar. Wenn Sie weiterhin auf 2.x abzielen möchten, wäre SQLite der richtige Weg.

Meiner Erfahrung nach waren sowohl Core Data als auch SQLite weitaus schneller als einfache Dateien für alle außer den einfachsten Fällen, die Datenpersistenz erfordern.