使用下载任务上传文件以进行后台传输是一件好事吗?

时间:2014-08-29 20:15:45

标签: ios nsurlsession nsurlsessiondownloadtask nsurlsessionuploadtask

我需要为我的应用程序在后台上传文件。

所以我看了uploadtask方法,但它实际上需要一个fileurl来处理后台transfert。 将我的对象放在JSON / XML中并将其保存为文件但在服务器端需要更改时,这真的是一件大事。

但是,我注意到有一种方法可以使用downloadtask上传文件,这还会返回身体响应。

基本上,我会在内存中创建我的对象,并在我的下载请求中将其添加为NSData(byte [])。 它实际上工作但我担心可能存在内存/连接错误,因为它不仅是磁盘上的文件而且还有内存和我们 处于背景状态......

这是一个正确的方法吗?或者我可能有连接问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为没关系,这是documented by Apple

  

使用下载任务上传文件

     

要上传下载任务的正文内容,您的应用必须提供   NSData对象或正文流作为NSURLRequest的一部分   在创建下载请求时提供的对象。

     

如果您使用流提供数据,则您的应用必须提供   URLSession:task:needNewBodyStream:委托方法提供新的   身份验证失败时的正文流。这个方法是   在使用流上传正文内容中进一步描述。

     

下载任务的行为就像数据任务一样,除了方式   将数据返回到您的应用程序。