2012-01-10 17 views
5

現在、iOSニューススタンドアプリを作成中です。私は問題を追加し、私が望むように働いています。しかし、リモートファイルをダウンロードしようとすると、動作していないように見えます。デリゲートメソッドが呼び出されず、ファイルが書き込まれていません。NKAssetDownloadダウンロード問題

これは、私は確かに持っているものです。

  • NSURLConnectionDownloadDelegateあるのUITableViewController。 (Info.plistファイル内)
  • UIBackgroundModes「ニューススタンドコンテンツは」
  • の#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]のディレクターがファイルが移動されることを確認しました(私のconnectionDidFinishDownloading:destinationURL:メソッド)。

誰でも手伝いできますか?それとも、私のためのいくつかのアイデアですか?私は数日間立ち往生した。より多くのコードを表示する必要がある場合は、私に知らせてください。ありがとうございました!

+0

このメソッドは、バックグラウンドスレッドまたはグローバルGCDキューから呼び出していますか? –

+0

私はそれを認識していません。最初にUIAlertViewを表示し、「ダウンロード」ボタンをタップすると上記のコードが呼び出されます。具体的には、「alertView:clickedButtonAtIndex:」メソッドで実行されています。 – Johnny

+0

これはバックグラウンドをデフォルトにしないでしょうか? – Johnny

答えて

3

私はついにそれを解決しました。私は完全に新しいプロジェクトを開始し、そのすべてのダウンロードをテストしました。実際のデバイスで動作していない限りNKAssetDownloadは動作しないようですが、通常のNSURLConnectionやダウンロードリクエストがiPhone/iPad Simulatorで動作しても、NKAssetDownloadは動作しないようです。

要約すると、私はコード単位で間違ったことをしていませんでした。しかし、NKAssetDownloadオブジェクトがダウンロードを開始するためには、実際のデバイスでアプリケーションを実行する必要がありました。確かに、それは私の経験だったかもしれませんが、それは私の問題を解決しました。

これは、これが同様の問題に遭遇している他の人に役立つことを願っています。

+0

NKAssetDownloadは、デバイスとシミュレータの両方で素晴らしい機能を... – Vive

1

NKAssetDownload はiPad iOS 5.0シミュレータで動作しますが、iPad iOS 4.3シミュレータでは使用できません。 4.3シミュレータでアプリを実行した場合、ニューススタンドにアクセスしようとするとエラーが発生するので、5.0シミュレータを使用したと思います。

コード抽出が正常に行われているように見えるので、これはおそらく謎のままです。

関連する問題