0

ダウンロードするファイルを表すアイコンをクリックしてオンラインサーバーからファイルをダウンロードするアプリを作成しています。その後、ファイルはアプリのサンドボックスに保存されます。

私は上記のことをすることができました。今、私がやりたいことは、アイコンに「チェック」画像を配置して、ユーザーに既にダウンロードされていることをほのめかすことです。

UIImageViewダウンロードが成功したときにアイコンの上に別のアイコンを配置して試してみましたが、アプリを完全に終了して再度開くと、画像が消えてしまい、再度ダウンロードして表示する必要があります。

どうすればそれができますか?

4

3 に答える 3

0

アプリのバンドル内には何も保存できませんが、[NSData dataWithContentsOfURL:] メソッドを使用して、アプリのドキュメント ディレクトリに画像を保存できます。これは完全に永続的なものではありませんが、少なくともユーザーがアプリを削除するまでは残ります。

NSData *imageData = [NSData dataWithContentsOfURL:myImageURL];
NSString *imagePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"/myImage.png"];
[imageData writeToFile:imagePath atomically:YES];
于 2013-05-10T05:10:53.683 に答える
0

ダウンロードしたすべてのファイルの配列を保持し、起動時にチェックマークを付けるファイルを確認します。

例えば:

画像を取得したら:

NSMutableArray *array;
array = [[NSUserDefaults standardUserDefaults] objectForKey:@"downloaded"].mutableCopy;
if (!array) array = [[NSMutableArray alloc] init];
[array addObject:somethingToIdentifyTheImageBy]; //For example, a string with the name of the image
[[NSUserDefaults standardUserDefaults] setObject:array forKey:@"downloaded"]

始めるとき:

NSArray *downloadedImages = [[NSUserDefaults standardUserDefaults] objectForKey:@"downloaded"];
forin (NSString *string in downloadedImages)
{
    //Apply check mark
}
于 2013-05-10T02:31:58.320 に答える