MonoTouch: Comment download le pdf de manière incrémentielle comme indiqué dans les diapositives Apple "Building Newsstand Apps", Session 504?

Ceci est un suivi de: MonoTouch: Comment save un énorme PDF téléchargé à partir d'une URL de façon incrémentielle?

J'essaie de suivre les directives indiquées par les diapositives Apple de la présentation Kiosque ("Building Newsstand Apps", Session 504):

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

Apple recommand l'utilisation du délégué NSURLConnection et de NKAssetDownload pour download et reprendre le contenu du kiosque à journaux, mais je ne comprends pas quel code C # dans MonoTouch est équivalent à celui affiché dans Obj-C dans les diapositives.

Le problème est de savoir comment download un énorme file PDF à partir d'une URL dans mon application iPhone / iPad en kiosque MonoTouch, un file PDF souvent trop volumineux pour tenir dans la memory.

Pour exécuter le téléchargement de manière incrémentielle comme indiqué dans les diapositives, au lieu d'append toutes datatables téléchargées dans NSData et à la fin du téléchargement et de les stocker dans un file lorsque toutes datatables sont disponibles, je dois exécuter le téléchargement de manière asynchronous. fil et append à un file chaque morceau reçu et libérer ma memory.

En même time, je dois être certain que si la connection est interrompue ou que l'application tombe en panne, le téléchargement reprendra automatiquement à partir du dernier bloc sans corrompre le file.

Quelle est la meilleure façon de gérer cela dans MonoTouch, sans risquer de voir mon application rejetée par Apple?

Merci d'avance!

Un exemple montrant comment vous configurez NSUrlConnectionDelegate peut être trouvé ici:

https://github.com/xamarin/monotouch-samples/blob/master/HttpClient/Cocoa.cs

Ce code montre comment créer un NSUrlRequest, et comment passer un NSUrlConnectionDelegate (c'est le paramètre "this" à la ligne 32).

L'exemple remplace une poignée de methods de NSUrlConnectionDelegate, vous devrez probablement replace plus, en fonction de ce que vous voulez prendre en charge.