Несколько загрузок NSURLD с прогрессом - PullRequest
0 голосов
/ 10 июня 2010

Я пытаюсь создать небольшое приложение, которое позволяет загружать несколько файлов одновременно, отображая их в пользовательском NSTableView. Это работает, я сделал это с помощью NSEnumerator, но я изо всех сил пытаюсь добиться правильного прогресса. Он рассчитан правильно, но это не делается индивидуально для каждой загрузки, вместо этого они суммируются.

Я пытался установить субтитры, содержащие прогресс, загружая их в отдельный массив, а затем вставляя / заменяя объекты, содержащие прогресс, но здесь я столкнулся с другой проблемой - я не знаю, как получить индекс загружаемого объекта, поэтому я не могу различить прогресс.

Надеюсь, вы понимаете, о чем я: P

Я загрузил исходный код на свой сервер, я был бы очень признателен, если бы кто-нибудь взглянул и помог мне: http://web.me.com/david.schiefer/MyController.m

Вот скриншот для визуализации того, что я хочу сделать: http://web.me.com/david.schiefer/progress.tiff

Как видите, 2-й элемент загружается, но прогресс не отображается, вместо этого значение в процентах будет равно 300 ish: /

Ответы [ 2 ]

1 голос
/ 10 июня 2010

Методы делегата всегда включают NSURLDownLoad в качестве первого параметра, который вы можете использовать с NSArray s -indexOfObject:, например:

- (void)download:(NSURLDownload *)dl didReceiveDataOfLength:(NSUInteger)len {
    NSUInteger index = [myArray indexOfObject:dl];
    // ...
}

Вместо -indexOfObject: вы можететакже:

  • используйте оболочку для NSURLDownload и присвойте им дополнительные свойства, такие как индекс
  • , используйте словарь для сопоставления NSURLDownload s с строками / ячейками /...
  • ...
0 голосов
/ 10 июня 2010

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

http://iphonedevelopment.blogspot.com/2010/05/downloading-images-for-table-without.html

(Вы можете легко адаптировать его для разработки MacOSX)

По сути, вы могли бы реализовать серию объектов 'Downloader', у которых есть делегат для отчета в вашу таблицу, таким образом, вы можете реализовать метод, который сообщает о прогрессе% обратно, используя делегат, который обновляется при каждой ячейке в таблице втягивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...