1

私は現在、読み込み時に約 30000 語のテキスト ファイルを読み込み、ゲームプレイ中にすばやく検索できるようにそれらをプレフィックス ツリーに読み込む iOS 用の単語ゲームを作成しています。これはうまく機能しますが、読み込みとツリーの構築プロセスにより、アプリの起動時間がかなり長くなります。現時点では iPhone 4 でテストしていますが、3GS の以前のモデルではかなり遅くなると思います。

アプリを開くときではなく、コンパイル時にこのツリーを作成する方法はありますか? または、あまり理想的ではありませんが、実行時に実行する代わりに、別のプログラムでデータをプリベークし、そのファイルをプロジェクトに追加することは可能でしょうか? どうすればそれを行うことができますか?

4

2 に答える 2

3

私が開発したゲームで同じ問題が発生しました。私たちにとっては、メモリ内ツリーの代わりに単語を含むSQLiteDBを使用した方がパフォーマンスが向上しました。DBは、ツリーを表すplistよりも少ないスペースを使用し、メモリにプリロードする必要がなく、パフォーマンス(有効な単語を照会するとき)はほぼ同じでした。

于 2010-12-17T19:41:13.710 に答える
0

pgbの答えは良いです。SQLite を使用したくない場合は、データを plist に保存し、[NSDictionary dictionaryWithContentsOfFile:] にツリーを作成させることができます。

データをプログラムにコンパイルすることを選択した場合は、数値や文字などのプリミティブ型で構築する必要があります。次に、構造体と配列を使用して構造体を定義し、定数変数を使用してデータを格納します。文字列の単なる配列である簡単な例を次に示します。

const char *words[] = {"Word1","Word2","Word3"};
const unsigned numWords = (sizeof(words) / sizeof(char*));
于 2010-12-17T21:59:10.543 に答える