繁体   English   中英

iOS RESTful应用程序设计模式

[英]iOS RESTful application design pattern

显然, iOS中 没有 后台服务 话虽如此,我正在寻找一种在设计模式下执行网络请求的标准方法。

Google I / O 2010在Android背景下提出了下图所示的设计模式。

Google I / O 2010 RESTful应用程序设计模式

基本上,这意味着您不应该直接从Activity发出网络请求,而应该将其发送到后台Service(橙色矩形) 本文档中列出了其背后的原因,其中包括当用户离开屏幕时系统可能会杀死Activity的事实。

回到我之前所说的,我正在寻找与RESTful iOS应用程序的设计模式相关的标准或原则,因为我注意到UIViewController可能会停止异步操作:

  1. 用户按下主屏幕按钮,应用程序关闭(这是可以预期的)
  2. 设备方向改变

考虑到这一点,让我们进入将文件上传到服务器的场景,假设它是一张图片。 网络请求可能要花一些时间才能完成,用户也可以更改设备方向或退出应用程序。 我们如何解决这个问题?

注意:我知道一种解决方案可能只是通过将视图控制器作为API客户端类的delegate pattern来使用delegate pattern ,但是我认为这将违反单一职责原则。

您应该查看iOS 7引入的NSURLSession ,它支持后台上传和下载。

当您的应用暂停时,NSURLSession类支持后台传输。 后台传输仅由使用后台会话配置对象创建的会话提供(由对backgroundSessionConfiguration:的调用返回)。

因此,尽管它仅支持下载和上传操作,但这似乎至少在表面上与您对Android的描述非常接近。

您可以查看此文档 ,它为您提供了使用NSURLSession的方式的一些提示。 您应该专门搜索下载任务和上传任务。

在这里,您可以找到一个更完整的代码示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM