次の方法を使用して画像を読み込もうとしています。
まず、ディスクに既にイメージがあるかどうかを確認します。ある場合は、ディスクからイメージ データを取得してロードします。それ以外の場合は、サーバーからイメージを取得してディスクに書き込みます。サーバーにアクセスする必要はありません。
問題は、ディスクからの書き込みまたは読み取りがないように見えることです。2回目に画像をロードしたいときはいつでも、サーバーからそれらを読み込んでいて、NSLog(@"disk");
決して呼び出されません。
誰かが何か考えを持っているなら、私は何が間違っているのかわかりませんか?
-(UIImage *)imageWith:(NSString *)imageName isPreview:(BOOL)preview
{
//imageName is something like "56.jpg"
NSString *mainOrPreview = @"Preview";
if (!preview) {
mainOrPreview = @"Main";
}
NSString *pathSuffix = [[@"Images" stringByAppendingPathComponent:mainOrPreview] stringByAppendingPathComponent:imageName];
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:pathSuffix];
NSData *imageData = [NSData dataWithContentsOfFile:path];
if (imageData) {
NSLog(@"disk");
}
if (!imageData && [self connected]) {
imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:[serverURL stringByAppendingPathComponent: pathSuffix]]];
if (imageData) {
[imageData writeToFile:path atomically:YES];
}
NSLog(@"server");
}
return [UIImage imageWithData:imageData];
}