Objective-C和ASIHTTPRequest返回值

| 我在Objective-C Mac应用程序中使用ASIHTTPRequest。我正在创建一个访问Web服务的公共API(通过ASIHTTPRequest)的类,我们将其称为“ 0”。我想要做的是编写直接从Web服务返回数据的写方法,就像这样...
publicAPI = [[PublicAPI alloc] initWithAccountInfo:email:[self email] password:[self password]];
NSArray *theData = [publicAPI getData];
因此,“ 2”需要启动ASIHTTPRequest并从服务器返回响应。问题是我想使用ASIHTTPRequest的
startAsynchronous
选项进行ASIHTTPRequest调用,该选项将服务器的响应委托给
requestFinished
方法。 如何将
requestFinished
的结果用作
getData
方法的返回值? 谢谢你的建议!
已邀请:
您的方法将要求
getData
等待响应返回之前再返回,这将使连接同步。这真的没有道理。 最好的方法是ASIHTTPRequest(和NSURLConnection)已经实现的委托模式。 如果您只需要进行同步连接进行测试,则NSURLConnection可以使用一个类方法:
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
做你的 [publicAPI getData] 实际上是ASIHTTPRequest的子类。这将接收ASI委托的回调(成功,失败),并将处理(JSON,XML,CoreData等)您的传入数据。 在处理完数据之后,可以使用任何类型的通知将NSArray数据返回到所需位置。 如果您为每个后端API调用子类化,并且具有通用的API处理系统,则可以轻松便捷地与后端进行通信。

要回复问题请先登录注册