0

アプリの起動時に XML 解析が hp、dell などの URL からメイン カテゴリを提供しているアプリを使用しています。Tableview に表示しています。

次に、特定のセルをクリックすると、メインカテゴリの詳細を取得できます。これは、 http: //www.dealsbell.com/findcoupon.php?store= hp のようなサブカテゴリを意味します

ここでも、解析後に適切にデータを取得しています。

しかし、ここでの私の懸念は、( http://www.dealsbell.com/findcoupon.php?store=hp ) このリンクで画像を取得していることです。

特定のサブカテゴリごとに同じ画像があります。だから私は、最初にURLからロードされた場合、画像が解析から画像を表示するようなことをしたいと思っています。 .

画像がデバイスの特定の方法で保存されると、次にサブカテゴリを見に行くときに、最初にこの画像がデバイスにローカルに保存されているかどうかを確認します。

はいの場合、特定の場所に移動してこのローカル画像を取得し、各セルに表示する必要があります。そうでない場合は、画像を解析して表示します。

私が聞きたいこと、あなたが得ていることを願っています。

どうすればこれが可能になり、結果を得るにはどうすればよいか教えてください。

あなたが提案できる例やリンクがあれば、それは私にとってより効率的です。

前もって感謝します。

4

2 に答える 2

2

これを達成するには、おそらく 2 つの方法があります。

  1. Image から NSData を取得し、それを UserDefaults またはデータベースに保持します。
  2. アプリケーションフォルダーに画像をダンプし、その場所から画像を選択します。

そのため、いずれかの場所でサブカテゴリ チェック用の画像を読み込もうとするたびに、存在する場合はそれを使用します。イメージを保存していて、更新されたイメージがある場合は、以前のコピーを削除して新しいイメージを保存します。

-(void) SaveImageinDocumentWithName:(UIImage*) aUIImage Name:(NSString*) aName
{
    if(aUIImage)
    {
        NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSMutableString* str = [[NSMutableString alloc] initWithCapacity:300];
        [str appendString:documentsDirectory];
        [str appendString:@"/"];
        [str appendString:aName];

        NSFileManager *fileManager = [NSFileManager defaultManager];
        [UIImagePNGRepresentation(aUIImage) writeToFile:str atomically:YES];

        if(str)
        {
            [str release];
            str = nil;

        }
        if(fileManager)
        {
            [fileManager release];
            fileManager = nil;
        }

        [pool release];
    }   

}

-- 保存画像の取得

 -(UIImage*)GetSavedImageWithName:(NSString*) aFileName
    {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSMutableString* str = [[NSMutableString alloc] initWithCapacity:300];
        [str appendString:documentsDirectory];
        [str appendString:@"/"];
        [str appendString:aFileName];

        NSFileManager *fileManager = [NSFileManager defaultManager];
        BOOL success = [fileManager fileExistsAtPath:str];

        NSData *dataToWrite = nil;

        UIImage* image = nil; 

        if(!success)
        {

        }
        else 
        {
            image = [[UIImage alloc] initWithContentsOfFile:str];
        }
        if(dataToWrite)
        {
            [dataToWrite release];
            dataToWrite = nil;
        }

        if(str)
        {
            [str release];
            str = nil;
        }

        if(fileManager)
        {
            [fileManager release];
            fileManager = nil;
        }
        return image;
    }
于 2012-05-24T06:11:32.070 に答える
1

dealbell.com/wp-content/uploads/mobile/hp.gif を解析し、hp.gif のみを取得

NSString *strImage = [NSString stringWithFormat:@"%@",aBook.image];

UIImage* image = [self GetSavedImageWithName:strImage];

if(image) // This means Image exists
{
  // Do what you want
}
else
{
    NSURL *url4Image = [NSURL URLWithString:strImage]; 

    NSData *data = [NSData dataWithContentsOfURL:url4Image];

    if(data != NULL) 
    {
       image =[[UIImage alloc] initWithData:data]; 
       [self SaveImageinDocumentWithName:image Name:strImage]; // save for future ref.
    } 
    else
    { 
      image =[UIImage imageNamed:@"icon.png"]; 
    } 
 }
于 2012-05-24T07:14:36.893 に答える