我的问题概述:NSURLConnection是否保留它的代理?
详细的问题和情景:
我有一个自定义类JsonDownloader,它接受一个URL并返回该URL返回的JSON的NSDictionary。
在iPhone应用程序中,我会做这样的事情。(init方法启动整个过程)
- (void)viewDidLoad {
JsonDownloder *temp = [[[JsonDownloader alloc] initWithURL:urlString returnDataTo:self]];
[temp release];
[super viewDidLoad];
}
当JsonDownloader完成下载和解析后,它会执行回调函数returnDataTo:对象,即调用对象。这个过程很正常。即使我在Web服务器响应中引入了30秒的延迟,JsonDownloader仍然存在并正确地执行其回调。
所以我的问题是:是什么让JsonDownloader一直保持在事件周期结束之后?我已经明确释放了它。
我猜测NSURLConnection必须对其委托进行保留,但我在文档中没有看到任何内容。有人有想法吗?