2016-03-29 22 views
1

ネット接続を確認するiPhoneアプリを構築する必要があります。ウェブサービスとオンラインで同期すると、Xイメージをダウンロードして、デバイス。オンラインでの画像とデータをオフラインで保存する方法

はその後、オフラインモードでは、私は私がまた

私はJSONレスポンスでの.NET Webサービスを使用していたデータについての画像にsomewhere.Sameを保存する必要があり、そのためにcollectionviewで画像をロードする必要があります。

私はコアデータストレージを考えていました、それは可能ですか?たぶんコアデータのデータベースに画像を格納すると、アプリの速度が遅くなりますか?

答えて

4

受信した各イメージをアプリケーションディレクトリにダウンロードして保存し、CoreDataにそのイメージへのパスを保存する必要があります。

// Save image to disk 
    NSString *documentaryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
    NSString *filePath = [NSString stringWithFormat:@"%@/Image.png",documentaryPath]; 
    NSData *data = [NSData dataWithData:UIImagePNGRepresentation(YOUR_IMAGE)]; 
    [data writeToFile:filePath atomically:YES]; 

// Retrieve the Image 
- (NSData *) imageData { 

    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

    NSString *pngFilePath = [NSString stringWithFormat:@"%@/Image.png",docDir]; 

    NSData *dataImage = [NSData dataWithContentsOfFile:pngFilePath]; 

    return dataImage; 
} 

以下のように使用してください。

UIImage *image = [UIImage imageWithData:imageData] 

お手数ですが、

+0

それはガードの答えだった....しかし、私はもう少し手伝ってくれますか? – Aashi

+0

はい。あなたがどんな種類の助けを必要としているか教えてください。 – BHUMICA

+0

もし私がその画像やデータフォルダを見たくないのなら...それは私たちが置いた場合の例のために私たち自身のアプリケーションにまだあります。画像フォルダの拡張子ギャラリー@bhumica – Aashi

0

はい、可能ですが、価値がありません。

は同様に、通常、我々は以下の手順で画像をキャッシュする:我々はそれ以外の場合は、step 3

  • から画像をロードして行く、そうならば、step 2を行って、特定のURLで画像をロードしているかどうか

    1. チェックファイル。
    2. イメージをダウンロードしてファイルに保存します。 イメージファイルにURLに関連付けられた名前を付ける必要があります。そのため、次回のURLはです。

    ツールはうまく機能しますが、SDWebImageを試してみてください。

  • 0

    はい、バイナリデータの形式でコアデータに画像を保存できます。ここに例を示します。link! コアデータがアプリのパフォーマンスを低下させることはありませんが、通常はsqliteよりも多くのスペースが必要です(この場合、a link!コアデータとsqliteパフォーマンスの比較を示しています。

    関連する問題