SOAP API를 사용하고 있으며 SQLite 데이터베이스에 저장된 XML 파일의 응답을 XML 파일에 반환합니다. 해당 XML 파일은 이미지 URL로 구성되어 있으며 다운로드 할 때 이미지를 로컬 폴더에 저장합니다. 그러나 다운로드에는 로컬 폴더에 다운로드하고 저장하는 데 많은 시간이 걸립니다. 지금 원하는 것은 속도 다운로드 로직을 로컬 폴더에 저장하는 것입니다.url에서 이미지를 빠르게 다운로드 중입니다.
if (categoryArray.count > 0)
NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"WordImages"];
NSError *error = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
[[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];
NSString *fileName = [stringPath stringByAppendingPathComponent:[NSString stringWithFormat:@"Image%lu.jpg",(unsigned long)categoryTitleArray.count]];
NSString *imgUrl = [categoryArray objectAtIndex:0];
imgUrl = [imgUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imgUrl]];
[data writeToFile:fileName atomically:YES];
categoryArray = [[NSMutableArray alloc]init];
[imageArray addObject:fileName];
왜 당신은 캐싱 기능을 구현하려고 로컬 이미지를 저장할 수 있습니까? – AnthoPak
당신의 질문이 분명하지는 않지만,이 코드는 매우 악의적입니다. [NSData dataWithContentsOfURL : [NSURL URLWithString : imgUrl]]'. 문제를 해결하기위한 배경 작업을 연구하십시오. – Desdenova
어떤 경우에도 비동기 패턴을 사용하여 데이터를 다운로드하면 사용자 경험이 향상되고 스레드가 차단되지 않습니다. – vadian