2012-01-10 11 views
5

Je crée actuellement une application iOS Kiosque. J'ai ajouté des problèmes et je travaille comme je le veux. Cependant, quand j'essaie d'aller télécharger leur fichier distant, cela ne semble pas fonctionner. Aucune méthode déléguée n'est appelée et aucun fichier n'est en cours d'écriture.NKAssetTéléchargement Problèmes de téléchargement

C'est ce que j'ai pour certains:

  • Un UITableViewController qui est un NSURLConnectionDownloadDelegate.
  • UIBackgroundModes (dans le fichier Info.plist) a 'kiosque à journaux contenu', a ajouté
  • #import est dans l'en-tête de mon UITableViewController
  • méthodes de NSURLConnectionDownloadDelegate sont mises en œuvre

Le code suivant se produit lorsque le l'utilisateur accepte de télécharger le problème (Note: le problème n'est pas nul):

// 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]; 

Je n'ai aucune idée de ce qui se passe. De tout ce que j'ai lu, il me semble avoir tout mis en œuvre correctement; Cependant, rien ne se passe. J'ai mis des points d'arrêt, NSLogs et autres; mais rien. Je l'ai même laissé tourner pendant un moment puis j'ai vérifié que le directeur [question contentURL] disait que le fichier serait également déplacé (dans ma connectionDidFinishDownloading: destinationURL: méthode).

Quelqu'un peut-il aider? Ou peut-être quelques idées pour moi? J'ai été coincé pendant des jours. Si vous avez besoin de voir plus de code, faites le moi savoir. Je vous remercie!

+0

Appelez-vous cette méthode à partir d'un thread d'arrière-plan ou d'une file d'attente globale GCD? –

+0

Pas que je sois conscient. Je montre d'abord un UIAlertView et si le bouton "Download" est tapé alors le code ci-dessus est appelé. Plus spécifiquement, il est exécuté dans la méthode "alertView: clickedButtonAtIndex:". – Johnny

+0

Ce ne serait pas par défaut à l'arrière-plan le ferait-il? – Johnny

Répondre

3

J'ai finalement résolu le problème. J'ai commencé un tout nouveau projet et j'ai fait tous les tests de téléchargement sur celui-là. Il s'avère (je peux me tromper mais c'est ce que j'ai trouvé) que même si une demande normale de NSURLConnection ou de téléchargement fonctionne dans le simulateur iPhone/iPad, il semble que NKAssetDownload ne fonctionnera pas s'il fonctionne sur un périphérique réel.

En résumé, je ne faisais rien de mal au niveau du code; Cependant, j'avais besoin de lancer l'application sur un périphérique réel pour que les objets NKAssetDownload commencent à télécharger. Certes, cela aurait pu être mon expérience mais cela a résolu mon problème. J'espère que cela aidera les autres qui rencontrent des problèmes similaires.

+0

Quant à moi NKAssetDownload fonctionne très bien à la fois sur l'appareil et le simulateur ... – Vive

1

NKAssetDownload est-ce que fonctionne sur le simulateur iPad iOS 5.0 mais n'est pas disponible sur le simulateur iPad iOS 4.3. Si vous avez lancé l'application sur le simulateur 4.3, vous auriez une erreur lorsque vous avez essayé d'accéder à newsstandkit, donc je suppose que vous avez utilisé le simulateur 5.0. Votre extrait de code semble bien donc celui-ci restera probablement un mystère.

Questions connexes