我目前正在创建iOS报亭应用。我添加了问题并以我想要的方式工作。但是,当我尝试去下载他们的远程文件时,它似乎不起作用。没有调用任何委托方法,也没有写入任何文件。
这是我肯定的:
以下代码在用户同意下载问题时发生(注意:问题不是零):
// 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:方法中)。
有人可以帮忙吗?或许对我来说有些想法?我被困了几天。如果您需要查看更多代码,请告诉我们。谢谢!
答案 0 :(得分:3)
我终于解决了它。我开始了一个全新的项目并对该项目进行了所有下载测试。事实证明(我可能是错的,但这是我发现的)即使普通的NSURLConnection或下载请求在iPhone / iPad模拟器中有效,看起来NKAssetDownload将无法工作,除非它在实际设备上运行。
总结一下,我没有做任何错误的代码;但是,我需要在实际设备上运行应用程序,以便NKAssetDownload对象开始下载。当然,它可能只是我的经验,但它解决了我的问题。
我希望这有助于其他遇到类似问题的人。
答案 1 :(得分:1)
NKAssetDownload 在iPad iOS 5.0模拟器上运行,但在iOS iOS 4.3模拟器上不可用。如果您在4.3模拟器上运行应用程序,当您尝试访问newsstandkit时会出现错误,因此我猜您使用了5.0模拟器。
你的代码提取似乎很好,所以这个可能仍然是一个谜。