Frage

Ich bin derzeit ein Wortspiel für iOS zu machen, dass beim Laden, liest in einer Textdatei von rund 30.000 Worten und lädt sie in einen Präfix-Baum für schnelle Suche während des Spiels. Das funktioniert gut, aber der Laden und Baum Bauprozess fügt eine merk paar Sekunden, um die Startzeit der App. Im Moment auf einem iPhone 4 teste ich, aber ich glaube, es ist ein gutes Geschäft langsamer auf einem 3GS früheren Modellen sei.

Gibt es eine Möglichkeit, diesen Baum bei der Kompilierung zu erstellen, anstatt, wenn die App öffnet? Oder weniger ideal, wäre es möglich, die Daten mit einem anderen Programm prebake und diese Datei in das Projekt ein, anstatt sie zur Laufzeit zu tun? Wie würde ich mich über das zu tun?

War es hilfreich?

Lösung

Ich laufe in die gleiche Problem mit einem Spiel, das wir entwickelt, und für uns ist es eine bessere Leistung eine SQLite-DB mit den Worten verwenden anstelle des In-Memory-Baum. Der DB verwendete weniger Platz als der plist, die den Baum dargestellt, es hat uns nicht benötigt sie im Speicher vorab zu laden, und die Leistung war etwa das gleiche (wenn man für ein gültiges Wort Abfrage).

Andere Tipps

pgb Antwort ist gut. Wenn Sie nicht verwenden SQLite möchten, können Sie Ihre Daten in einer plist speichern und haben [NSDictionary dictionaryWithContentsOfFile:]. Einen Baum für Sie erstellen

Wenn Sie die Daten in Ihrem Programm zusammengestellt haben Sie wählen, wird es von primitiven Typen gebaut werden, wie Zahlen und Zeichen. Dann Verwendung Strukturen und Anordnungen, die Struktur zu definieren und verwenden, um eine konstante Variable, um die Daten zu speichern. Hier ist ein einfaches Beispiel, das nur ein Array von Zeichenketten ist:

const char *words[] = {"Word1","Word2","Word3"};
const unsigned numWords = (sizeof(words) / sizeof(char*));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top