使用nsurlsession

时间:2015-12-09 08:46:24

标签: ios nsurlsessionuploadtask

我想使用NSURLSession将文件上传到服务器。

案例是: 1.由于应用程序崩溃,它应该恢复从停止的位置上传文件到服务器。 2.它也应该处理后台上传。

2 个答案:

答案 0 :(得分:0)

尝试AFNetworking库以异步方式上传图片。您可以在this thread中找到一个简短示例。

答案 1 :(得分:0)

您应该使用背景NSURLSession。如果您的应用程序崩溃或用户在上传过程中离开了应用程序,并且后台为NSURLSession,则上传将在后台无缝继续。上传完成后,您的应用会通过delegate收到通知(如果您的应用在下载完成后还没有活动,它将以后台模式启动,此时你可以做任何你需要的清理工作。

因此,请使用NSURLSessionConfiguration创建backgroundSessionConfigurationWithIdentifier,然后使用该配置实例化NSURLSession

有几点需要注意:

  • 您无法使用完成处理程序模式。您必须使用基于委托的实现。

  • 您必须在应用委托中实施handleEventsForBackgroundURLSession,捕获它传递给您的completionHandler并再次实例化后台会话。同样,在NSURLSession委托方法中,您必须实现URLSessionDidFinishEventsForBackgroundURLSession,它将调用已保存的完成处理程序。

有关详细信息,请参阅 URL会话编程指南中的Background Task Considerations,请参阅NSURLSession class reference中相同名称(但文本不同)的部分,或参阅WWDC 2013年What's New in Foundation Networking,Apple首次向我们介绍了背景会议。