2011-12-31 4 views
2

これはフォローされた:MonoTouch:アップルのスライド「Building Newsstand Apps」、セッション504に示されているように、PDFを段階的にダウンロードするにはどうすればいいですか?

http://adcdownload.apple.com//wwdc_2011/adc_on_itunes__wwdc11_sessions__pdf/504_building_newsstand_apps.pdf

:私は、ニューススタンドのプレゼンテーション(「ビルブックスアプリ」、セッション504)のアップルのスライドで示されるガイドラインに従うことをしようとしているMonoTouch: How to save a huge PDF downloaded from an URL incrementally?

Appleはニューススタンドのコンテンツのダウンロードと再開にNSURLConnection DelegateとNKAssetDownloadの使用を推奨していますが、MonoTouchのC#コードがObj-CのC#コードと同じであることは理解できません。

問題は、私のMonoTouch iPhone/iPadニューススタンドアプリ(メモリに収まらない大きすぎるPDF)のURLから巨大なPDFファイルをダウンロードする方法です。

NSDataにダウンロードしたすべてのデータを追加する代わりに、スライドに示されているように徐々にダウンロードを実行するには、データをすべて取得したらファイルに保存する代わりにダウンロードを実行する必要があります別のスレッドで非同期に実行し、受信した各チャンクをファイルに追加してメモリを解放します。

同時に、接続が切断されるかアプリがクラッシュすると、ファイルを破損することなく、最後のチャンクから自動的にダウンロードが再開されることを確認する必要があります。

Appleが私のアプリケーションを拒否することなく、MonoTouchでこれを処理するより良い方法はありますか?

ありがとうございます!

+0

このためにC#.Net APIを使用している場合、Appleはあなたのアプリケーションを拒否しません。 WebClientクラスを使用するだけで、実際にコードが短くなり、書き込む時間が短縮されます。 – jonathanpeppers

+0

[MonoTouch:URLからインクリメンタルにダウンロードした巨大なPDFをどのように保存するの?](http://stackoverflow.com/questions/8666648/monotouch-how-to-save-a-huge-pdf-downloaded-from -an-url-incrementally) – jonathanpeppers

答えて

3

NSUrlConnectionDelegateがここで見つけることができますどのようにあなたのセットアップを示すサンプル:

このコードは、それが中に「この」パラメータである(NSUrlRequestを作成する方法、およびNSUrlConnectionDelegateを渡す方法を示しhttps://github.com/xamarin/monotouch-samples/blob/master/HttpClient/Cocoa.cs

32行目)。

このサンプルでは、​​NSUrlConnectionDelegateのメソッドがいくつかオーバーライドされています。サポートしたいものに基づいて、より多くのオーバーライドを行う可能性があります。

+0

これは、NSUrlConnectionの設定方法を理解するのに非常に便利なサンプルコードです。 –

関連する問題