0

Documents ディレクトリに複数の画像を保存するアプリに取り組んでいます。これらの画像は最大 100 個です。次の方法を使用して、Documents ディレクトリから画像を読み取ります。このメソッドは、Documents ディレクトリ内のすべての画像に対して呼び出されます。

UIImage *currentImage = [UIImage imageWithContentsOfFile:pathOfFileInDocumentsDictory];

したがって、最悪の場合、このメソッドは 100 個の画像に対して実行され、XCode を使用して、このメソッドに約 100 ミリ秒かかることを確認しました。したがって、私が間違っていなければ、100 枚の画像で 10 秒かかります。効率化したい。これらの画像を効率的かつ短時間で読み取るためのより良い方法はありますか?

4

1 に答える 1

2

実行ループを使用すると、次のことができます。

-(void) loadInBackground {

    [self performSelectorInBackground:@selector(_loadInBackground) withObject:nil];

}

-(void) _loadInBackground {

    // Do all your heavy loading here
    UIImage *currentImage = [UIImage imageWithContentsOfFile:pathOfFileInDocumentsDictory];
    [self performSelectorOnMainThread:@selector(loadedImage:) withObject:currentImage waitUntilDone:YES];

}

-(void) loadedImage:(UIImage*)img {

    // Do something with the loaded image
    anImageView.image = img;

}
于 2012-09-05T15:42:24.380 に答える