NSURLConnection返回零长度数据

时间:2011-06-06 23:43:01

标签: objective-c ios asynchronous nsurlconnection

当我使用viewController作为委托时,我有异步NSURLConnections正常工作,现在有各种各样的连接,我想通过单例连接对象完成所有这些连接。所以我让Connection为它所创建的每个连接创建一个新的委托对象。连接在app委托中实例化,但+(void)send:(Message *)函数可能会终止。

我对这是如何工作的感觉是委托监听器被置于运行循环中(我对此并不完全清楚,但我认为它们不是在单独的线程中。无论如何因为代理人分配了自己的responseData memory。)和connectionDidFinishLoading执行得很好,但是带有一个空的responseData。我的意思是我发现自己处于connectionDidFinishLoading中,但responseData没有字节。

创建应用程序委托的代码(在send方法中)是:

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

所以我的问题是两个折叠:

  1. send方法终止的问题是什么?委托指针具有本地范围。

  2. 如果这是问题所在,我该怎样做才能让代表继续活着?

1 个答案:

答案 0 :(得分:0)

您应该仔细检查代理人对connection:didReceiveData:

的实施情况

请记住,您有责任在那里收集传入的数据段。

如果有任何疑问,请阅读Apple的doc(尤其是URL加载系统编程指南)和示例代码。