【发布时间】:2010-05-20 23:37:30
【问题描述】:
我有一个使用 ASIHTTPRequest 库发起 HTTP 请求的方法 (getAllTeams:)。
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 中返回结果。目前,getAllTeams 没有返回任何内容,因为 HTTP 响应是在 requestFinished: 方法中评估的。
理想情况下,我希望能够调用[WebService getAllTeams],等待响应,然后将其转储到 NSArray 中。我不想创建属性,因为这是一次性类(意味着它不存储任何值,只是检索值),并且多个方法将使用同一个 requestFinished (它们都返回一个数组)。
我已经阅读了一些关于代表和 NSNotifications 的内容,但我不确定它们中的任何一个是否是最好的方法。我发现 this snippet 关于通过将选择器作为参数传递来实现回调,但它没有成功(因为 requestFinished 独立触发)。
有什么建议吗?即使只是指出正确的方向,我也会很感激。
NSArray *teams = [[WebService alloc] getAllTeams];(目前不起作用,因为 getAllTeams 不返回任何内容,但 requestFinished 会。我想获取 requestFinished 的结果并将其传递回 getAllTeams :)
【问题讨论】:
标签: iphone objective-c delegates callback asihttprequest