如何有效地从iOS中的文档目录中读取多个图像

时间:2012-09-05 15:38:22

标签: objective-c ios performance

我正在开发一个可以在Documents目录中保存多个图像的应用程序。这些图像最多可以为100.现在使用以下方法从Documents目录中读取图像。为Documents目录中的所有图像调用此方法。

UIImage *currentImage = [UIImage imageWithContentsOfFile:pathOfFileInDocumentsDictory];

因此,在更糟糕的情况下,此方法将运行100个图像,并且我已使用XCode检查此方法需要大约100毫秒。因此,如果我没有错,这可以为100张图像制作10秒。我想让它变得高效。是否有更好的方法可以在更短的时间内有效地阅读这些图像?

1 个答案:

答案 0 :(得分:2)

使用run loop,你可以这样做:

-(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;

}