0

実行時に自分で設定したフォルダに画像を書き込みたいです。ここで、100 個の画像があるとします。これを Documents ディレクトリの folder1 と folder2 という 2 つのフォルダーに保存するとします。両方とも等しい番号を持っています。つまり、folder1 に 50 枚、folder2 に残りの 50 枚です。次に、必要な場所でそれらをフェッチしたいと思います。

だから私の質問は、半分の数の画像に対して2つのフォルダーを選択するのが正しいアプローチなのか、それともすべての画像に対して1つのフォルダーを選択するのが正しいのかということです。読み書きはどちらが速いですか?また、単一のフォルダで画像の数が増加した場合、または一定数の画像が含まれるフォルダの数が増えた場合 (それぞれ 100 の画像を含む 5 つのフォルダまたは 500 の画像を含む 1 つのフォルダなど) はどうなりますか?

これらのパスを sqlite データベースの 1 つのフィールドに保存します。また、このパスを照会して画像を表示します。今のところ、これを iOS デバイスに対してのみ実行したいと考えています。ありがとう。

4

2 に答える 2

1

Vish、既に sqlite ファイルにイメージ ファイル パスが保存されている場合、保存するファイルの数は関係ありません。NSFileManager がすべてのファイルを処理する必要はないと思います。ファイルを調べ、名前を確認してから画像を開く必要がある場合は、話が別で、パフォーマンスの問題が発生します。したがって、すべてを1つのフォルダーで行います。異なる種類の画像を保存する必要がある場合、たとえばカバー画像とユーザーのプロフィール画像を保存する必要がある場合は、2 つのフォルダーのみをお勧めします。カバー用に 1 つのフォルダー、プロフィール画像用に 1 つのフォルダーを作成します。

画像の保存に Grand Central Dispatch を使用できるためdispatch_async、メイン スレッドと UI をブロックしません。あなたはこのようにすることができます:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    //save here the images
});

NSFileManager とパフォーマンスのヒントについて詳しく知りたい場合は、こちらをご覧ください

于 2013-08-20T09:49:36.970 に答える