关于制作应用程序的最佳方法,我有一个问题,它必须下载并显示pdf,它是由一个JSON提供的,它有147个pdf文件的链接,大小在1到2MB之间。
问题:
将所有文件下载到iPad的最佳方法是什么?
我要使用AFNetworking 2.0吗?
NSFileManager是保存所有文件的方法吗?
我可能会遇到以下问题:
通过异步下载,如果失去了连接或iPad上没有更多的空间,计数器是什么?
是否有针对这种情况的教程或示例?
很抱歉问了这么多问题,但我是新手。诚挚的问候。
发布于 2014-10-23 16:18:04
将所有文件下载到iPad的最佳方法是什么?
“这是非常广泛的,”罗曼底建议。具体的问题更容易回答。有很多方法可以通过HTTP请求将文件下载到设备上,每个方法都有优缺点,这取决于您的情况。
我要使用AFNetworking 2.0吗?
好的。我不会跟你争辩的。这是一个广泛使用的、坚实的API,可以与基于HTTP的资源进行接口。
NSFileManager是保存所有文件的方法吗?
是。NSFileManager是用来从应用程序的沙箱中读取/写入文件的类。
对于异步下载,如果失去连接或iPad上没有更多的空间,有什么对策?
我不是百分之百确定,所以我不能确切地说出在这个案子中发生了什么。AFNetworking可以通过在下载过程中写入临时文件等方式提供一些帮助.
是否有针对这种情况的教程或示例?
我有一个关于Github的示例项目,它显示了一个可以下载的文件表。您可以查看下载的进度,暂停每个请求,继续和取消以及。完成后,您可以查看下载的文件。它使用AFNetworking,可能对您有用:
发布于 2014-10-23 17:03:24
在下载大型文件时,主要建议是在下载这些文件时避免将这些文件加载到内存中。相反,请确保将它们直接流到持久存储中。在处理空间特定错误方面,只需确保检查在完成处理程序或适当的委托方法中返回给您的NSError对象。
AFURLConnectionOperation的outputStream来引用您创建的NSOutputStream,并引用持久存储中的某些路径。
例如,请参见使用AFNetworking下载多个文件时内存压力问题。NSURLSession (无论是通过AFNetworking还是自己做)并实例化一个NSURLSessionDownloadTask,它可以执行相同的操作。
谷歌的"NSURLSessionDownloadTask例子“,你会发现大量的参考资料。基于块的downloadTaskWithURL渲染非常简单。要进行后台下载要复杂一些,并且需要基于委托的实现(请参见下载文件和处理网址加载系统编程指南:使用NSURLSession的网址加载系统编程指南:使用NSURLSession后台活动部分或查看WWDC 2013视频,基金会网络的新进展)。无论哪种方式,您都可以避免与下载大型文件相关的内存消耗问题。
https://stackoverflow.com/questions/26532347
复制相似问题