ASIHTTPRequest - 我应该使用多个委托来确定异步请求的来源吗?

时间:2012-10-03 04:59:47

标签: iphone objective-c ios cocoa-touch asihttprequest

这更像是一个设计问题。我有一个ViewController来管理UITableView。用户可以在此tableview中添加/编辑/删除项目。对此表视图的更改将通过Web服务调用保留在我的后端数据库中。我正在使用ASIHTTPRequest来包装这些Web服务调用。 ASIHTTPRequest请求被赋予一个委托对象,该对象应该实现 - (void)requestFinished:request和 - (void)requestFailed:request。

显然我的 - (void)requestFinished:request的实现会有所不同,具体取决于用户是删除记录还是刷新tableview。这通常如何处理?我是否应该为不同类型的请求实现一个唯一的委托,在视图控制器中设置'status'标志以指示正在进行的请求或其他什么?

谢谢!

3 个答案:

答案 0 :(得分:0)

您应该遵循ASIHTTPRequest的文档

在委托方法中处理多个请求的成功与失败

http://allseeing-i.com/ASIHTTPRequest/How-to-use

希望这会帮助你。

答案 1 :(得分:0)

您应该为您提出的每个请求提供tag

- (void)requestFinished:(ASIHTTPRequest *)request
{

    //Here you can differentiate each request using request.tag for individual request success

}

- (void)requestFailed:(ASIHTTPRequest *)request
{
    //Here you can differentiate each request using request.tag for individual request error
}

答案 2 :(得分:0)

尝试下面的代码...

- (void)requestFinished:(ASIHTTPRequest *)request
{

     if (request.tag == 1) { // 1 just an example
         /// do something here
     }
     else if (request.tag == 2) {
         /// do something here
     }
}

 - (void)requestFailed:(ASIHTTPRequest *)request
{

     if (request.tag == 1) { // 1 just an example
         /// do something here
     }
     else if (request.tag == 2) {
         /// do something here
     }
}

我希望这可以帮助你...

:)