1

たとえば、サーバーから画像をダウンロードする場合は、画像を遅延ロードする必要があります。そして私は他のインスタンスを知りたいです。

4

4 に答える 4

2

常にこれを行うことは害にはなりませんでした。最近登場するすべてのデバイスは、マルチコア CPU の恩恵を受けています。グランド セントラル ディスパッチにより、別のコアで実行されるプロセスを簡単に定義し、完了したら UI 更新のためにメイン スレッドに同期できます。

これを行うと、アプリケーションの応答性が向上し、たとえばローカル ディスク アクセスからリソースへのリモート アクセスへの移行が容易になります。

例:

 dispatch_queue_t taskQ = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(taskQ, ^
    {
        //Do some work. . . . 

        //Now update back on the main thread
        dispatch_async(dispatch_get_main_queue(), ^
        {

        });
    });


    //release the queue. 
于 2013-02-11T08:52:29.843 に答える
2

画像がまだアクティブなメモリになく、表示する準備ができていないとき。

ディスクまたはコア データからイメージをロードしている場合は、イメージを遅延ロードし、完了するまでプレースホルダ イメージを使用しても問題はありません。

特に 100x100 で画像を表示していて、実際の画像が 1000x1000 の場合の UITableView の場合。

BG でサイズ変更を行い、完了したら小さな画像を表示します。

于 2013-02-11T08:54:19.060 に答える
0

遅延読み込みの考え方は、必要なときにのみリソースを読み込むというものです。たとえば、アプリケーション バンドルに多数の画像/リソースがある場合、アプリが起動するとすぐにすべてをロードして、すべてを同時にメモリにヒットさせることができます。これは、大量の RAM を使用するだけでなく (すべてが同時に画面に表示されるわけではないため、かなり不必要です)、ロードに時間がかかる可能性があるため、悪い考えです。

于 2013-02-11T08:53:25.933 に答える
0

メッセージを取得して表示するアクションにメイン スレッドでかなりの時間がかかり、アプリがブロックされる場合は、バックグラウンド スレッドでアクションを実行する必要があります。

于 2013-02-11T08:54:02.973 に答える