NKAssetDownload下载问题

时间:2012-01-10 05:17:23

标签: iphone ios ipad ios5 newsstand-kit

我目前正在创建iOS报亭应用。我添加了问题并以我想要的方式工作。但是,当我尝试去下载他们的远程文件时,它似乎不起作用。没有调用任何委托方法,也没有写入任何文件。

这是我肯定的:

  • 一个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等;但没什么。我甚至让它运行一段时间,然后检查导演[问题contentURL]说文件也会被移动(在我的connectionDidFinishDownloading:destinationURL:方法中)。

有人可以帮忙吗?或许对我来说有些想法?我被困了几天。如果您需要查看更多代码,请告诉我们。谢谢!

2 个答案:

答案 0 :(得分:3)

我终于解决了它。我开始了一个全新的项目并对该项目进行了所有下载测试。事实证明(我可能是错的,但这是我发现的)即使普通的NSURLConnection或下载请求在iPhone / iPad模拟器中有效,看起来NKAssetDownload将无法工作,除非它在实际设备上运行。

总结一下,我没有做任何错误的代码;但是,我需要在实际设备上运行应用程序,以便NKAssetDownload对象开始下载。当然,它可能只是我的经验,但它解决了我的问题。

我希望这有助于其他遇到类似问题的人。

答案 1 :(得分:1)

NKAssetDownload 在iPad iOS 5.0模拟器上运行,但在iOS iOS 4.3模拟器上不可用。如果您在4.3模拟器上运行应用程序,当您尝试访问newsstandkit时会出现错误,因此我猜您使用了5.0模拟器。

你的代码提取似乎很好,所以这个可能仍然是一个谜。