ASIHTTPRequest代码设计

nic*_*ico 3 oop iphone cocoa-touch design-patterns asihttprequest

我正在使用ASIHTTPRequest异步与服务器通信.它工作得很好,但我在不同的控制器中做请求,现在所有控制器都有重复的方法.在单个类中抽象代码(请求)的最佳方法是什么,因此我可以轻松地重用代码,这样我就可以使控制器更简单.我可以把它放在一个单独的(或在app委托中),但我认为这不是一个好方法.或者可以使用委托回调制作我自己的协议.

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

Ale*_*lds 7

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

ASINetworkQueue在应用程序委托中设置了一个.队列将发送-go消息,以便它可以接收请求.我将我的子类请求添加到此队列.每个请求都会被处理并发出通知,我的视图控制器会相应地处理响应数据.

我所做的是子类ASIHTTPRequest和:

  1. 设置-init方法(或-initWithParams:方法,取决于请求)
  2. 覆盖-requestFailed:-requestCompleted:处理从Web服务返回的HTTP错误消息
  3. 我的视图控制器注册以观察NSNotification来自-requestCompleted:方法中的错误处理的通知

当视图控制器被推入并弹出导航堆栈时,我添加和删除不同的注册.某些视图控制器只需要侦听某些子类请求类型.

侦听NSNotification允许我发出UIAlertView对话框以让用户知道出错的地方,或者在请求产生成功的HTTP错误时处理请求响应数据(例如,将结果提供给Core Data存储).

无论请求成功还是失败,-release我都会在完成请求时记住该请求.