gpt4 book ai didi

iphone - ASIHTTPRequest代码设计

转载 作者:行者123 更新时间:2023-12-03 19:35:40 25 4
gpt4 key购买 nike

我正在使用 ASIHTTPRequest 与服务器异步通信。它工作得很好,但是我在不同的 Controller 中执行请求,现在所有这些 Controller 中都有重复的方法。在单个类中抽象该代码(请求)的最佳方法是什么,这样我就可以轻松地重用代码,从而使 Controller 更加简单。我可以将其放在单例中(或应用程序委托(delegate)中),但我认为这不是一个好方法。或者也许可以使用委托(delegate)回调为其制定自己的协议(protocol)。

任何有关良好设计方法的建议都会有所帮助。谢谢。

最佳答案

我正在大量使用 Ben Copsey 的 ASIHTTPRequest 子类来构建 Web 服务客户端,我希望在接下来的几周内完成。这是一个很棒的项目,他的工作为我节省了大量的时间和精力。

我在应用程序委托(delegate)中设置了一个 ASINetworkQueue。向队列发送 -go 消息,以便它准备好接收请求。我将子类请求添加到该队列中。每个请求都会被处理并发出通知,我的 View Controller 会相应地处理响应数据。

我所做的是子类ASIHTTPRequest并且:

  1. 设置 -init 方法(或 -initWithParams: 方法,具体取决于请求)
  2. 重写 -requestFailed:-requestCompleted: 以处理从 Web 服务返回的 HTTP 错误消息
  3. 我的 View Controller 注册以观察来自 -requestCompleted: 方法中的错误处理的 NSNotification 通知

当 View Controller 在导航堆栈中推送和弹出时,我添加和删除不同的注册。某些 View Controller 只需要监听某些子类请求类型。

监听 NSNotification 允许我发出 UIAlertView 对话框,让用户知道出了问题,或者处理请求响应数据(将结果馈送到核心数据存储中) ,例如)当请求产生成功的 HTTP 错误时。

无论请求成功还是失败,我都会记得在完成后-release请求。

关于iphone - ASIHTTPRequest代码设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748587/

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