0

オンライン イメージ パス (url) からのアイコン イメージをローカルに保存するアプリケーションが 1 つあります。

ユーザーが別のURLにアクセスしたときにこの画像をローカルに保存し、アイコンが以前のものに置き換えられ、再利用のためにこのアイコンを置き換える方法を教えてください。

ありがとう!

        NSString *strImage = [NSString stringWithFormat:@"%@",aBook.image];
        NSURL *url4Image = [NSURL URLWithString:strImage];
        NSData *data = [NSData dataWithContentsOfURL:url4Image];
        if(data !=NULL)
        {
            imageView =[[UIImage alloc] initWithData:data];
            if(imageView == NULL)
            {
                imageView =[UIImage imageNamed:@"dealsbell_lo.png"];    //  NoImage.png

            }
        }
        NSData *imageData = UIImagePNGRepresentation(imageView);
        NSString *imageName = [NSString stringWithFormat:@"image.png"];
                NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName];
        [imageData writeToFile:fullPathToFile atomically:YES];

        cell.imageView.image = imageView;
4

2 に答える 2

0

このようなシナリオでは、ダウンロードした画像をキャッシュして、次のリクエストのために同じものを再開する必要があります。

同じためにJMImageCacheフレームワークを使用する必要があると思います。

于 2012-08-31T11:39:55.893 に答える
0

これを行う:

    NSString *imageName = [NSString stringWithFormat:[NSString stringWithFormat:@"image_%d.png",indexPath.row]];//change name of image
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName];
    if([[NSFileManager defaultManager] fileExistsAtPath:fullPathToFile])
    {
        NSData *imgData  = [NSData dataWithContentsOfFile:fullPathToFile];
        if(imgData){
        UIImage *img = [UIImage imageWithData:imgData];
        cellimageView.image = img;
        }
    }
    else
    {
       NSString *strImage = [NSString stringWithFormat:@"%@",aBook.image];
       NSURL *url4Image = [NSURL URLWithString:strImage];
       NSData *data = [NSData dataWithContentsOfURL:url4Image];
       if(imgData){
       UIImage *img = [UIImage imageWithData:imgData];
       cellimageView.image = img;
       [data writeToFile:fullPathToFile atomically:YES];
       }
    }
于 2012-08-31T11:48:33.360 に答える