MonoTouch: Как загружать PDF постепенно, как указано в слайдах Apple «Создание приложений для газетных киосков», сессия 504? - PullRequest
2 голосов
/ 31 декабря 2011

Это продолжение: MonoTouch: Как постепенно сохранить огромный PDF-файл, скачанный с URL-адреса?

Я пытаюсь следовать рекомендациям, указанным в слайдах Apple наПрезентация газетного киоска («Создание приложений для газетных киосков», сессия 504):

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

Apple рекомендует использовать NSURLConnection Delegate и NKAssetDownload для загрузки и возобновления содержимого газетного киоска, но я неЯ не понимаю, какой код C # в MonoTouch эквивалентен тому, который показан на слайдах в Obj-C.

Проблема заключается в том, как загрузить огромный файл PDF с URL-адреса в моем приложении для газетных киосков MonoTouch для iPhone / iPad,PDF, который часто слишком велик для размещения в памяти.

Чтобы выполнять загрузку постепенно, как указано на слайдах, вместо добавления всех загруженных данных в NSData и в самом конце загрузки и сохранения их вфайл, когда я получил все данные, мне нужно выполнить загрузку асинхронно в отдельном потоке и добавить к файлу каждый приемВедомый чанк и освободить мою память.

В то же время я должен быть уверен, что в случае разрыва соединения или сбоя приложения загрузка автоматически возобновится с последнего чанка без повреждения файла.

Как лучше всего справиться с этим в MonoTouch, не рискуя увидеть, что мое приложение отклонено Apple?

Заранее спасибо!

1 Ответ

3 голосов
/ 02 января 2012

Образец, показывающий, как вы настраиваете NSUrlConnectionDelegate, можно найти здесь:

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

Этот код показывает, как создать NSUrlRequest и как передать NSUrlConnectionDelegate (этоПараметр "this" в строке 32).

Образец переопределяет несколько методов из NSUrlConnectionDelegate, вы, вероятно, переопределите больше, в зависимости от того, что вы хотите поддерживать.

...