【问题标题】:OK to assign one NSObject as the delegate of multiple ASIHTTPRequests?可以将一个 NSObject 指定为多个 ASIHTTPRequest 的委托吗?
【发布时间】:2011-06-29 16:08:59
【问题描述】:

可以指定一个NSObject 作为多个异步ASIHTTPRequests 的代表吗?

我担心两个或多个请求会同时在委托上调用相同的回调方法。

我检查了ASIHTTPRequest 在主线程上调用委托回调,就像NSURLConnection 一样。所以,没关系,对吧?

【问题讨论】:

  • 为什么你想要一个相同对象的实例作为少数对象的委托?我认为单独的实例会很好用!
  • 因为我创建了ASIHTTPRequest 的一个子类,称为JSONRequest,它是委托...实际上,我刚刚意识到我正在创建单独的实例。 JSONRequest 的每个实例都是它自己的委托,处理回调,并将它们传递给 jsonDelegate,这是 JSONRequest 的私有属性并响应 requestFinished:withResult:,其中 result 是 NSDictionary 表示JSON 响应。为此,我重载了 setDelegate: 来执行super.delegate = self; self.jsonDelegate = newDelegate。不错!

标签: objective-c asynchronous delegates nsurlconnection asihttprequest


【解决方案1】:

是的,这很好,很正常,也是代表设计的一部分。

【讨论】:

    【解决方案2】:

    是的,这是一件非常正常的事情。正确设计的 API 应该将调用对象作为任何委托方法的参数传递。这样,作为委托的对象可以(如有必要)通过委托对象实例来区分其委托职责。

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多