0
내 앱 문서 디렉토리에 이미지를 저장하려고합니다. 이미지를 디렉토리에 쉽게 저장할 수 있지만 이미지와 미리보기 이미지를 저장하는 데 약 2 초가 소요됩니다. 다음 방법을 사용하여 큐를 사용하여 이미지를 저장합니다.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 초를 저장해야하기 때문에 많은 시간이 필요합니다!
이미지를 백그라운드 스레드에 저장하고 주 스레드를 다른 프로세스 용으로 남겨 둘 수 있습니다. 또한 문서 디렉토리를 한 번 계산하여 코드를 최적화하고 나중에 사용할 수 있습니다. – Midhere
이미지를 저장하는 데 시간이 걸렸지 만 이러한 작업을 수행 했습니까? userdefaults에 문서 디렉토리 문자열을 한 번 저장하고 완전히 사용했습니다. 다른 아이디어? –
@SahilTyagi 당신이 주었던 주요 아이디어를 놓쳤습니다. 배경 스레드 및 블록을 사용하여 이미지를 작성하십시오. 그 사이에 사용자에게 회 전자를 보여주십시오. – NSNoob