gpt4 book ai didi

ios - iOS 获取请求的最佳实践

转载 作者:行者123 更新时间:2023-11-28 22:11:42 26 4
gpt4 key购买 nike

我已将 AFHTTPSessionManager 子类化以进行请求。我有一个用于解析传入 JSON 的模型类。

我应该在哪里做获取请求?在我的模型中,ViewController 还是我应该为请求使用包装器?

在这种情况下哪些是最佳做法?

最佳答案

在开始我的项目之前,我也遇到过同样的问题。我是这样做的:

基类,使用 AFNetworking 执行所有获取/放置 HTTP 请求。Web 服务类 对基类一无所知 - 只是如何使用它,我在这个意义上使方法通用。Data class 构造了请求所需的 url/参数。

通过这种方式,应用程序的其余部分对网络层一无所知。数据类知道如何将 URL/参数放在一起并请求网络调用。就是这样。 Web 服务类知道如何根据提供给它的信息进行调用,数据类和基类知道如何发出请求,获得响应。

然后我将响应传递给一个基本 XML/JSON 类,该类开始解析从基本 Web 服务类返回的数据。一旦数据被解析,它就会使用所需的正确模型对象存储到数据类中。从那里 - 应用程序只向数据类询问数据。

通过这种方法,应用的顶层知道如何请求数据并将其取回。它对该过程的内部工作一无所知。这意味着,将来,如果我决定更改为不同的网络库,我只需要修改一个类而不是一大堆代码。

简而言之,我是这样构造它的:

  • ViewController 类或其他一些类从 Data class 请求数据
  • Data Class然后构造请求所需的URL和参数
  • Webservice classData Class 中获取 URL 和参数并将其放入请求中,然后将其发送到基础 Web 服务类
  • Base webservice class 然后使用完整的 URL 进行调用。它处理响应,如果成功,它会将其放入 NSData 对象中 - 然后将其传递给 XML/JSON 类
  • XML/JSOn 类知道如何处理数据对象并开始解析。完成后,它会将其返回给存储为自定义 NSObject 的 Data class

一旦进行原始调用的类收到 http 请求和解析已完成的通知,它就会向“数据类”请求该数据。

由于我上面提到的原因,这种类及其职责的分离效果很好。更改应用程序的一部分,不需要大量重写许多类。最多两点。

我希望这能让您朝着正确的方向前进。

关于ios - iOS 获取请求的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22773981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com