2

私は質問を受けました:私はこれをどのように理解しますか:

「iOS注:ファイルシステムに直接ダウンロードすることはお勧めできないため、iOSではNSURLDownloadクラスを使用できません。代わりにNSURLConnectionクラスを使用してください。詳細については、「NSURLConnectionの使用」を参照してください。」

ダウンロードをファイルシステムに直接保存することはできません。しかし、代わりに「NSURLConnection」を使用してファイル(500MBのようなもの)をダウンロードした場合、それはRAMに保存されますか、それともストレージシステムのTemp-Folderのような場所に保存されますか?

RAMに保存されている場合、とにかくディスクに直接保存することはできますか?

ありがとう

4

1 に答える 1

1

これが意味するのは、ファイルシステム上のファイルに直接ダウンロードすることは推奨されていないということです。これは、デスクトップコンピュータに共通の規則ですが、iOSではめったに見られません。

データは常にRAMに保存されるとは限りません。ファイルのサイズは、かなり制限されているため、デバイスで使用可能なRAMの量をはるかに上回ります。aからの応答NSURLConnectionはキャッシュに保存されます。それはまだディスクに書き込まれていますが、OSはアプリケーションではなくそれを追跡します。これはOS実装の詳細であり、アプリケーション開発者は気にする必要がないため、このデータがどこに保存されるかは保証されません。したがって、ファイルシステムを介して直接アクセスしないようにしてください。

もちろん、からデータを受け取ったら、自分の管理下でデータをディスクに保存できますNSURLConnection。これを行うには、このガイドNSURLConnectionを使用して設定します。重要なのは、正しく設定することです。プロトコルについては、このドキュメントを参照してくださいNSURLConnectionDelegate

あなたが興味を持っている方法はこれです(とにかく必須の方法です!)

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

NSData利用できるようになったら、それを使って好きなように行うことができます。このデータをディスクに保存して保存します。これを行う方法については、NSDataのドキュメントを参照してください。

于 2012-11-25T13:32:42.357 に答える