0

我正在尝试将 ASIHttpRequest 与 iPhone 一起使用,以从我网站上基于查询字符串的 API 获取一些信息。

目前,我正处于设计的规划阶段,我有点不知道应该如何进行。

我想有一堂课,它将处理我需要的所有请求。我计划让 iPhone 应用程序的不同部分调用这个类,并且在类中,我想运行 ASIHttpRequest 代码。例如:

  1. 我将弹出一个将登录的模式视图。
  2. 这个模态视图将使用用户调用一个函数/传递给 API 类,然后将 URL 放在一起并调用它。
  3. 一旦 URL 请求被处理并完成,它将进入 requestFinished 方法或我选择的任何一个选择器。
  4. 模态视图将取回 responseString 并按需要继续。

这就是我卡住的地方。我想以某种方式将 responseString 传递回网络 url 请求的原始调用者。

我应该使用委托方法吗?如果是这样,我如何从 requestFinished 方法中调用它?我想过这个问题,但是对于如何让 requestFinished 函数调用该委托感到有些困惑。我可能缺少一种将委托作为对象与 ASIHttpRequest 一起传递的简单方法。

我也考虑过 NSNotificationCenter,但我觉得这比使用委托更有用。

我感谢提供的任何帮助。

4

2 回答 2

1

这取决于你想对响应做什么。如果您只想显示一条带有响应的警报消息,您可以直接在您的请求 delagate 方法中执行此操作。另一种方法是将您的响应与共享数据一起存储在类中,并发布通知以告诉侦听器它有数据要处理。这并不难)和第三种变体。您可以使用委托和选择器属性为客户端-服务器通信创建一个基本类。如果需要,只需调用 [delegate performSelector:selector] 即可。然后你可以继承其他类进行登录,检查版本等。

于 2009-11-05T06:14:39.220 回答
0

您可以继承 ASIHttpRequest 并覆盖它- (void)requestFinished,这允许您在后台线程上进行一些处理(并且仍然调用[super requestFinished];),或者只需添加一个带有访问器的实例变量id myDelegate;,以便您可以从您的-requestFinished

于 2009-11-05T11:01:27.747 回答