iPhone SDK - 資源でzip形式のコンテンツを追加して、ドキュメントフォルダに解凍
質問
私は私のiPhoneアプリケーションに同梱する必要があります(zip形式)いくつかのリソースを持っています。アプリを初めて起動すると、このZIPファイルには、移動/ Documentsフォルダにコピーされ、そこにそれを解凍する必要があります。ユーザーは、アプリケーションからこのパスに複数のファイルを追加することができます。誰かが私はこれを達成する方法を提案してくださいことはできますか?
ありがとうございます。
解決
上記のあなたのコメントに基づきます:
理由私は圧縮を追加します 複数存在するため、リソース ファイル。私はその後、圧縮しない場合、私はよ 個別にファイルを移動する必要があります。 I'LL また、ファイルのリストを維持する必要があります どこかに私は、ファイルを読むことができるように、 名前を付け、その後、それらを移動。私は思いました ビュンと解凍は単純でした 解決策ます。
あなたのバンドル内のフォルダにすべてのファイルを追加することができます。アプリを初めて起動するときには、ドキュメントフォルダにコピーし、フォルダとこれまで何それはそのフォルダに見つけて実行するように、高速列挙体を使用しています。フォルダ内のフォルダを処理する(多分再帰を追加)少し複雑です。この方法は、あなたは、zipやタールを心配する、また、インストールするファイルのディレクトリを維持する必要はありません。
ちょうどあなたがXcodeののリソースフォルダにしたいファイルのフォルダを配置していないグループとしてフォルダとしてインポートし、それを伝えます。ファイルはフォルダ内だけではなく、すべての場所の上に個別のファイルとしてあなたのリソースにインストールされ得ることを道ます。
EDITます:
いっそのこと、私はあなたのプロジェクトに追加し、1つのフォルダにしたいすべてのファイルを置くことについて言う何をすべきかではなく、「グループ」として、その後、最初の起動の使用でます:
[[NSFileManager defaultManager] copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error];
とそれがある場所から別の場所にあなたの全体のディレクトリをコピーします。 EASY!
他のヒント
<プロジェクトにlibz.dylib
Frameworkを追加し、 DeustyのNSData
gzipのカテゴリを含めます/>あなたの圧縮/解凍方法を与えるであろう。
これはlibz.dylibを使用して利用可能ですが、本当にスペース(もしあれば)、それは少しあなたを救うとして不要です。携帯電話に転送されたときにアプリケーションバンドルがすでに圧縮されています。圧縮の上の圧縮は通常、少し追加の圧縮をもたらします。
それを自分で試してみてください。あなたはzip形式のコンテンツとして同じように多くのスペースを取ることがあり、解凍した内容とその出荷のアプリを見つけることができます。