2009-06-02 13 views
2

問題は、私のアプリがiPhoneのユーザーのドキュメントディレクトリに何百メガバイトも保存することです。テスト中、iPhoneシミュレータは、再ビルドするたびにこのデータをすべて新しいドキュメントディレクトリにコピーするので、各ビルドでアプリを起動するのに時間がかかります。毎回同じ場所にディレクトリを残したり、何らかの方法で起動をスピードアップしたりするためのソリューションはありますか?たとえば、HEX値を持つディレクターは、iPhone Simulatorでの再構築/再起動のたびに変更され、かなり時間がかかることがあります。iPhone Simulatorでアプリを起動するにはどうすればよいですか?

./ライブラリ/アプリケーションのサポート/ iPhone Simulator/User/Applications/B32A0BA1-5843-4FDE-B5FB -4E40460BD8CC /ドキュメント/

おかげで、

マット

+0

シミュレータとの相対的なデバイスの速度はどのようになっていますか? – Nosredna

+0

さらに多くのドキュメントファイルが追加されても、起動速度は変化しませんが、シミュレータでは250 MBの写真(起動時に私のアプリケーションで使用されていない)で10秒間スピンアップしています。ほとんどの場合、XCodeのように見えるか、またはシミュレータが、これらのファイルを何らかの方法で「処理」しています。私は文書のディレクトリに多くのデータを蓄積するので、時間が増えるようです。 – Matt

答えて

11

シミュレータ(デバイス自体とは異なり)は、サンドボックス化された場所を保持する必要はありません。

だから、シミュレータからファイルを保存するとき、あなたは試みることができる:シミュレータから実行したとき

#if TARGET_IPHONE_SIMULATOR 

// save your files to a fixed location on your hard-disk 
// (like /Users/yourusername/MyIPhoneAppDebugStorage) 

#else 

// Save files normally 
// (to [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
//  NSUserDomainMask, YES) objectAtIndex:0]) 

#endif 

そうすれば、あなたの大きなファイルは、あなたのハードディスク上の一定の場所に常にあります。

+0

ありがとうございます - これは完璧に機能します!私のシミュレータは、NSDocumentDirectoryで1.5GBのデータを持っていたときにアプリを読み込むのに約10分かかっていましたが、すぐに上記の修正をほとんど即座に読み込んでいます。 – Matt

0

は、ビルド時間を短縮するために、最も簡単な方法は、データの妥当なサブセットを含む新しいXCodeのターゲットを作成することはおそらくです。これらのデータファイルがXCodeプロジェクトの「リソース」ファイルであると仮定すると、アプリケーションターゲットを複製し、「app lite」などの名前を変更してから、「リソースのコピー」ビルドフェーズを編集して、単一の小さなファイル、または何でも)。

+0

申し訳ありませんが、これらのファイルはXCodeプロジェクトの「リソース」ファイルではなく、実行中にアプリケーションによってドキュメントディレクトリに保存されるファイルです([NSSearchPathForDirectoriesInDomains(NSDocumentDirectory、NSUserDomainMask、YES)objectAtIndex :0])。返信いただきありがとうございます。 – Matt

0

XCodeはビルドと実行のたびに新しいディレクトリを作成せず、古いディレクトリの名前を変更するだけです。

私は、アプリケーションを実行する前に明示的に削除しない限り、ドキュメントディレクトリに格納されているデータとそこに格納されているデータがあります。

私は、シミュレータを起動するときにどこに時間がかかるのか興味があります。あなたはアプリを通してデバッグできますか? (あなたのコードは時間がかかりますか?)

chris。

+0

こんにちはPyjamaSam。おそらく、ディレクトリの名前を変更するのは正しいでしょう(アプリを起動している間に何が起こったのか見てきました)が、シミュレータは起動段階でドキュメントを使って何かをしているようです。例えば、私のアプリは3MBのsqliteファイルと250MBの写真をDocumentsディレクトリに持っています。起動時に、私のコードはこれらの写真ファイルでは何もしませんが、SQLファイルではかなり役に立ちます。ただし、ドキュメントディレクトリから写真ファイルを削除すると、即座に起動します。アプリを起動するまでに10秒遅れる(回転するカラーホイール) – Matt

2

ただちに最初の実行後にを開いたままにします。 Simulatorを閉じることなく、XCodeでプログラムを停止するだけです。したがって、次回のテスト起動では、シミュレータを再度ロードせずにアプリケーションをロードするだけです。

本当に私のために物事がスピードアップしました。

関連する問題