2016-08-30 6 views
0

インターネットから画像をダウンロードする方法を作成しようとしています。Objective-Cを使用して画像をiPadにダウンロード

これは画像の束をNSDataでダウンロードしていますが、その作業はデバイスに保存する必要があります。問題はそれが完全にダウンロードされ、私は画像にアクセスすることができますが、私がアプリを削除するか、実行中のbgアプリを閉じると画像にアクセスすることができません。それはすぐに画像にダウンロードしてアクセスすれば動作します。永続的ではありません。ここで

は私のコードです:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
     NSString *newDirectory = [NSString stringWithFormat:@"%@/toyotacotizador", [paths objectAtIndex:0]]; 
     NSString* path = [newDirectory stringByAppendingPathComponent: 
          [NSString stringWithFormat:@"image-appdownloader-%d-%d.png", tablePointer,tagDictionary] ]; 
     NSData* data = UIImagePNGRepresentation(image); 
     [data writeToFile:path atomically:YES]; 
     [self.dbManager loadDataFromDB:[NSString stringWithFormat:@"UPDATE %@ SET image='%@' WHERE %@ = '%@';", [dataImage getTableName], path, [dataImage getIdTableColumn], [dataImage getIdQuery]]]; 

画像のルートが正しいですが、私は、アプリケーション全体のプロセスを閉じたり、アプリを削除した場合、私は、画像にアクセスすることはできません。

画像をダウンロードすると表示されるようです。

+0

このリンクをチェック: - http://stackoverflow.com/a/10873221/4419797 –

答えて

1

NSData referenceでお読みください。文献によれば

アトミック書き込みは一時ファイルにデータを書き込むことによって開始します。この書き込みが成功すると、メソッドは一時ファイルを最終的な場所に移動します。

アプリを閉じるときに画像が表示されない理由は、ファイルが最終的な場所にまだ移動されていないためです。

また、基準は明示的にこの方法を使うべきではないと言っている:

代わりに、既存のファイルディスクリプタとNSFileHandleオブジェクトを初期化し、安全にファイルを書き込むことがNSFileHandleメソッドを使用します。

関連する問題