NSURLConnectionDownloadDelegate文件问题

现在5.0版本已经推出了,我们可以在不违反苹果的NDA的情况下讨论它,但是对于新版本的NSURLConnection我有一个问题。 这有一个新的委托NSURLConnectionDownloadDelegate与两个关键的方法。

  1. connection:didWriteData:totalBytesWritten:expectedTotalBytes:在文件下载正在进行时重复调用

  2. connectionDidFinishDownloading:destinationURL:在下载完成时调用一次。

下载的文件应该在destinationURL(至less在这个方法的生命周期中 – 意图是你得到它并将它移到永久的地方)。 问题是:它不在那里。 那个目录是空的。 我已经把这个漏洞报告给了苹果公司,他们告诉我这是一个他们已经意识到的问题的重复。

如果任何人有解决方法,或者发现他们可以成功使用这个委托,请让我知道。

UPDATE 10/17/2011:我已经放弃了这一点,并返回到旧的委托,仍然在5.0工作正常,即使文档说委托方法只能通过4.3。

显然只用于报亭应用程序。 这家伙可能find了一个工作:

http://adamernst.com/post/18948400652/a-replacement-for-nsurlconnectiondownloaddelegate

另外,只需使用NSURLConnection。 但是如果你实现了NSURLDownloadDelegate方法,它们看起来会覆盖标准的NSURLConnection委托方法。 如果是你想要的方便的NSURLConnectionDownloadDelegate的方法didWriteData:方法,例如更新一个UIProgressView,可以通过从http响应中获取总文件大小以及使用NSURLConnection的didReceiveData:方法来实现。

文档告诉文件只有在委托方法被调用时保证存在,所以你需要在调用委托方法的时候把它复制到别的地方。

谷歌告诉我,当服务器发送一个神秘的文件名和/或MIMEtypes时,人们遇到问题。

伙计们,

我最近发现了这个新的NSURLConnectionDataDelegate协议。 但是,iOS 5文档不完整。

新的NSURLConnectionDataDelegate协议在文档中,但使用它的新版本的NSURLConnection不是。 该文档仍然告诉我们使用现在不推荐使用的NSURLConnectionDelegate协议方法。

我收集到NSURLConnection现在将数据从远程URL直接下载到本地磁盘上的文件,就像Mac OS中的NSURLDownload类一样。 我怎么知道这是如何工作的?

NSURLConnection的头部提示连接对象根据委托符合的NSURLConnectionDelegate协议版本推演出你想要的结果。 这似乎很棘手。 我从来没有听说过使用委托的协议一致性作为控制一个类的行为的方式。

即使现在NSURLConnectionDownloadDelegate也不行。

这是一个很好的替代品: http : //github.com/jbrennan/JBContainedURLConnection