2011-06-06 53 views
1

我有异步NSURLConnections工作得很好,当我使用我的viewController作为委托,现在有各种各样的连接,我想通过一个单身连接对象完成它们。所以我让Connection为每个连接创建一个新的委托对象。连接在应用程序委托中实例化,但+(void)send:(Message *)函数可能终止。NSURLConnection返回零长度数据

我对这种工作方式的感觉是,委托侦听器被放到运行循环中(我对此并不十分清楚,但我认为它们不在单独的线程中。自己的responseData内存。)和connectionDidFinishLoading执行得很好,但是有一个空的responseData。由此我的意思是我发现自己在connectionDidFinishLoading但responseData具有零字节。

代码中创建应用程序的委托(在发送方式)是:

ConnectionDelegate *delegate = [[ConnectionDelegate alloc] init]; 
NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:delegate]; 

所以我的问题是两折:

  1. 那是发送方法终止的问题?委托指针具有局部范围。

  2. 如果这是问题,我该怎么办才能保持代表活着?

回答

0

你应该仔细检查您的委托的执行connection:didReceiveData:

记住你是负责收集输入数据段在那里。

如果有任何疑问,请仔细阅读Apple的文档(特别是URL加载系统编程指南)和示例代码。

+0

'connection:didReceiveData:'''[responseData appendData:data]'我认为这是非常标准的。 – Djehuty 2011-06-07 00:02:06

+0

然后请在你的问题中粘贴你的'connection:didReceiveResponse:'代码。请编辑您的问题,而不是评论。 – ZhangChn 2011-06-07 00:05:05

+0

好的,ZhangChn,我是StackOverflow的新手,对不起。不过,我感谢你的帮助。 – Djehuty 2011-06-07 00:10:33