2013-08-20 52 views
-1

我希望能够到,比方说,运行NSURLConnection的发布和下载这样一个类:NSURLConnection的单独

NSString *data = [Server post:para1, para2, para3]; 

我敢肯定,我必须写含有的代表一类NSURLConnection,当然还有称为post的函数启动NSURLConnection并返回下载的字符串。

整个问题是我不知道如何正确地做到这一点。我已经尝试添加一个名为Server的类与代表等,然后使该函数公开。之后,post函数无法访问类中的委托和变量。此外,post函数无法返回字符串,因为它在- (void)connectionDidFinishLoading:(NSURLConnection *)connection中是第一个已知的。

你能否给我一个提示如何创建一个类,可以HTTP POST到一个URL并返回字符串并且只用一行或几行来运行?

+0

您确定这是您想要的吗?这必须是阻止呼叫,因为连接可能非常慢。另外,它可能会失败。 –

+0

我认为这将是最简单的,是的。我将在另一个线程中启动它,以防止应用程序冻结。我需要它的原因是因为NSURLConnection会运行多次返回不同的值,需要以不同的方式处理。看起来很难“猜测”在 - (void)connectionDidFinishLoading:(NSURLConnection *)连接中返回哪个字符串。 – Hedam

回答

1

对于同步URL请求(优选在非主线程),可以使用的NSURLConnection

sendSynchronousRequest:returningResponse:error: 

类方法。

0

您可以通过两种方式实现这一点,一种方法是在connectionDidFinishLoading完成时调用自定义委托,或者您可以为Server方法提供块回调,并在完成时调用块回调。开始时,块有点混乱,但是知道如何使用它们是一个很好的工具。

看一看Blocks (Apple Doc)

Bock Tutorial