Cocoa touch 将异步调用的结果返回给调用它的方法

Cocoa touch 将异步调用的结果返回给调用它的方法,cocoa-touch,nsurlconnection,nscondition,Cocoa Touch,Nsurlconnection,Nscondition,我正在为我正在开发的应用程序编写一个标准的NSURLConnection类,我希望能够使用后续的应用程序 其思想是能够将URL和参数数组传递给此类中的方法,该方法将启动连接,然后在连接完成后返回结果 -(NSData*)go :(NSString*)url :(NSArray)params 因为我是从另一个类调用它,所以我希望能够将结果设置为该调用类中的一个变量 NSData *result = [[connect alloc]go:testurl :testparams]; 问题是,结果不

我正在为我正在开发的应用程序编写一个标准的NSURLConnection类,我希望能够使用后续的应用程序

其思想是能够将URL和参数数组传递给此类中的方法,该方法将启动连接,然后在连接完成后返回结果

-(NSData*)go :(NSString*)url :(NSArray)params
因为我是从另一个类调用它,所以我希望能够将结果设置为该调用类中的一个变量

NSData *result = [[connect alloc]go:testurl :testparams];
问题是,结果不会立即到达,因此当我返回我在go方法中设置的NSData时,它是空的

我尝试了一些方法,比如NSCondition和在go方法中的另一个线程上运行while循环,以检查它是否完成

不幸的是,我事先并不知道,NSURLConnections的异步连接与go方法中的NSCondition在同一线程上运行。由于这个原因,当我锁定该方法时,它不会提前返回,我也锁定了我的连接,因此它从未到达它的完成回调

我如何才能有效地暂停go方法足够长的时间,以完成连接,从而将数据返回到应用程序中的任何位置

有一个机会,我正在进行这完全错误的方式,所以请让我知道,如果是这样的情况。它确实需要像这样工作,因为多个请求将同时发出,我希望这个连接类的不同实例能够控制它们