5

私は、Webから数百の大きなPDFファイルをダウンロードし、オフラインで使用するためにそれらをiPadにキャッシュするiOSiPadアプリを作成しています。

iPadでそれらを保存するのに最適な場所はどこですか?ローカルファイルシステム、コアデータ、またはその他の場所?インデックス作成と検索のメカニズム(サムネイル画像などを使用)にコアデータを使用することを計画しており、ユーザーがドキュメント全体を具体的に要求した場合にのみPDFドキュメントにアクセスします。

4

3 に答える 3

4

これを行うのに最適な場所は、DocumentsディレクトリまたはCacheディレクトリのいずれかです。Documentsディレクトリ内のドキュメントはユーザー生成コンテンツであると想定されているため、これはあなたが探しているものではないと思います。

代わりに、次の方法でアクセスできるCacheディレクトリを使用する必要があると思います。

- (NSString *)cacheDirectory {
{
    NSArray *pathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *path    = [pathList objectAtIndex:0];
    return path;
}

デバイスに十分なスペースがない場合は、システムによってキャッシュディレクトリが空になる可能性があることに注意してください。私の経験では、これはほとんど起こりませんが、絶対にファイルが削除されないようにしたい場合は、キャッシュ以外のライブラリディレクトリのサブディレクトリにドキュメントを保存することをお勧めします。

この場合、ディレクトリとファイルの両方にフラグ設定する必要があります。そうしないと、アプリ拒否されます。do not backup

公式情報については、Appleガイドライン(開発者アカウントが必要)を参照してください。

于 2012-10-05T18:17:11.063 に答える
1

それらを/documentsフォルダーに保存する必要があります。そのフォルダの目的はまさにそれであり、再ダウンロードできなかった(または大きすぎて再ダウンロードできない)データを保存します。一時データまたは簡単に再ダウンロードできるデータの場合、Appleは代わりに/cacheフォルダーを使用することをお勧めします。

特定の名前でファイルを保存し、その名前をCoreDataに保存するだけで、ファイルを見つけることができます。

于 2012-10-05T18:14:00.523 に答える
1

PDFをDocumentsフォルダーに保存します。そして、コアデータのsqlite日付ベースを作成します。おそらく3つの属性(thumbNail、localURL、title)を持つコアデータエンティティを作成します。

于 2012-10-05T18:20:14.813 に答える