私は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