2012-01-10 3 views
5

В настоящее время я создаю приложение для новостей iOS. У меня проблемы с добавлением и работой, как я хочу. Однако, когда я пытаюсь пойти и загрузить их удаленный файл, он, похоже, не работает. Ни один из методов делегата не вызывается, и файл не записывается.NKAssetDownload Проблемы с загрузкой

Это то, что я наверняка:

  • A UITableViewController, который является NSURLConnectionDownloadDelegate.
  • UIBackgroundModes (в файле info.plist) имеет "газетный киоск-контент добавил
  • #import в заголовке моего UITableViewController
  • реализованы методы NSURLConnectionDownloadDelegate в

Этот код происходит, когда пользователь соглашается загрузить выпуск (Примечание: проблема не ноль):

// Download the Issue! 
    NSLog(@"Starting Download of issue %@",issue.name); 

    // Generate the url of the issue   
    NSURL * downloadURL = [dataManager pdfURLForIssue:issue]; 

    // Create the request 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:downloadURL 
                  cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData 
                 timeoutInterval:30.0]; 

    // Create the NKAssetDownload object 
    NKAssetDownload *assetDownload = [issue addAssetWithRequest:request]; 

    // Set user info so I know which issue's UIProgressView to update 
    [assetDownload setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys:issue.name,@"Name", 
           nil]]; 

    // start download 
    [assetDownload downloadWithDelegate:self]; 

Я понятия не имею, что происходит. Из всего, что я прочитал, я, кажется, все правильно выполнил; однако ничего не происходит. Я установил точки останова, NSLogs и т. Д .; но ничего. Я даже позволил ему запустить некоторое время, а затем проверил директора [issue contentURL], сказал, что файл тоже будет перемещен (в моем подключенииDidFinishDownloading: destinationURL: method).

Может ли кто-нибудь помочь? Или, может быть, некоторые идеи для меня? Я застрял целыми днями. Если вам нужно увидеть больше кода, просто дайте мне знать. Спасибо!

+0

Вы вызываете этот метод из фонового потока или глобальной очереди GCD? –

+0

Не знаю, что я знаю. Сначала я показываю UIAlertView и, если нажата кнопка «Загрузить», вызывается вышеуказанный код. Более конкретно, он выполняется в методе alertView: clickedButtonAtIndex:. – Johnny

+0

Это не будет дефолт для фона, не так ли? – Johnny

ответ

3

Я, наконец, решил. Я начал совершенно новый проект и выполнил все тесты загрузки на этом. Оказывается (я мог ошибаться, но это то, что я нашел), что, несмотря на то, что нормальный NSURLConnection или запрос на загрузку работает в iPhone/iPad Simulator, кажется, что NKAssetDownload не работает, если он не работает на реальном устройстве.

Подводя итог, я не делал ничего неправильного кода; однако мне нужно было запустить приложение на самом устройстве для объектов NKAssetDownload, которые начнут загружаться. Конечно, это мог быть только мой опыт, но он решил мою проблему.

Я надеюсь, что это поможет другим, кто сталкивается с подобными проблемами.

+0

Что касается меня NKAssetDownload отлично работает как на устройстве, так и на симуляторе ... – Vive

1

NKAssetЗагрузить делает работы на iPad iOS 5.0, но не доступен на симуляторе iPad iOS 4.3. Если вы запустили приложение на симуляторе 4.3, у вас возникла бы ошибка, когда вы попытались получить доступ к newsstandkit, поэтому, я думаю, вы использовали симулятор 5.0.

Ваш экстракт кода кажется прекрасным, поэтому этот, вероятно, останется загадкой.

Смежные вопросы