2013-12-12 75 views
0

我試圖將圖像保存到我的應用程序文檔目錄。雖然我可以輕鬆地將圖像保存到目錄中,但保存圖像及其縮略圖需要大約兩秒的時間。我正在使用以下方法使用隊列保存圖像。更快速的方式將圖像保存到iOS中的文檔目錄

+ (void)saveImage:(UIImage*)imageToSave withName:(NSString*)imageName toFolder:(NSString*)folderName 
{ 
    [Utils createFolderWithPath:folderName]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/%@.png",folderName,imageName]]; 
    NSData *imageData = UIImagePNGRepresentation(imageToSave); 
    [imageData writeToFile:savedImagePath atomically:NO]; 
} 
+ (void)createFolderWithPath:(NSString *)folderPath 
{ 
    NSError *error = nil; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:folderPath]; 

    if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
    { 
     [[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:NO attributes:nil error:&error]; 
    } 
} 

有沒有更快的方法?由於我必須保存多個圖像,每個圖像需要2秒鐘的時間!

+2

您可以保存圖像在後臺線程和離開主線程的其他進程。您也可以通過計算一次文檔目錄來優化您的代碼,並將其用於將來使用。 – Midhere

+0

做了這些東西,但仍然花費時間來保存圖像。將文檔目錄字符串保存在userdefaults中一次並全部使用。任何其他想法? –

+0

@SahilTyagi你錯過了他給你的主要想法。使用後臺線程和塊來寫入圖像。同時,向用戶展示一個微調器。 – NSNoob

回答

0

你不需要每次都找到文檔目錄。只需找出一次並存儲它。並在一個線程中運行你的代碼,線程將把圖像保存在後臺。

相關問題