Iphone ASIHTTPRequest的通过结果”;“请求已完成”;返回原始方法

Iphone ASIHTTPRequest的通过结果”;“请求已完成”;返回原始方法,iphone,objective-c,delegates,callback,asihttprequest,Iphone,Objective C,Delegates,Callback,Asihttprequest,我有一个方法(getAllTeams:)可以使用ASIHTTPRequest库启动HTTP请求 NSURL *httpURL = [[[NSURL alloc] initWithString:@"/api/teams" relativeToURL:webServiceURL] autorelease]; ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:httpURL] autorelease]; [request s

我有一个方法(getAllTeams:)可以使用ASIHTTPRequest库启动HTTP请求

NSURL *httpURL = [[[NSURL alloc] initWithString:@"/api/teams" relativeToURL:webServiceURL] autorelease];

ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:httpURL] autorelease];
[request setDelegate:self];
[request startAsynchronous];
我希望能够调用
[WebService getAllTeams]
,让它在NSArray中返回结果。目前,GetAllTeam没有返回任何内容,因为HTTP响应是在requestFinished:方法中计算的

理想情况下,我希望能够调用
[WebService getAllTeams]
,等待响应,并将其转储到NSArray中。我不想创建属性,因为这是一次性类(意味着它不存储任何值,只检索值),并且多个方法将使用相同的requestFinished(所有方法都返回一个数组)

我已经读了一些关于代表和通知的内容,但我不确定它们是否是最好的方法。我发现了通过将选择器作为参数传递来实现回调的方法,但没有成功(因为requestFinished是独立激发的)

有什么建议吗?我希望你能给我指出正确的方向


NSArray*teams=[[WebService alloc]getAllTeams](当前不起作用,因为getAllTeams不返回任何内容,但requestFinished返回任何内容。我想获取requestFinished的结果并将其传递回getAllTeams:)

在调用时发送对原始类实例的引用:

[WebService getAllTeams:self];
然后修改
-getAllTeams
以接受对原始实例的引用:

- (void) getAllTeams:(id)sender {
    // ...
    [request setDelegate:sender];
    // ...
}

您的原始实例将负责处理响应和清理内存。

我是否可以使用此方法访问responseString/responseData,或者这是我需要自己处理的事情?您的委托方法(位于原始类实例中)获取对
responseString
responseData
的访问权限,因为这些方法传递了对
request
的引用。可以使用此方法使用异步调用吗?我一直在胡闹,没能让它工作。只是想弄清楚到底发生了什么。谢谢你迄今为止的帮助。是的,当然。但是,我不是在应用程序委托中创建
[request startAsynchronous]
的实例,而是在该队列中添加任何
请求
实例。队列将按照添加顺序处理它们:先进先出
ASINetworkQueue
ASIHTTPRequest
的一部分--请阅读网站文档以了解如何进行设置。