首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NSURLConnection不调用委托方法

NSURLConnection不调用委托方法
EN

Stack Overflow用户
提问于 2010-07-23 23:56:02
回答 5查看 12.3K关注 0票数 15

我在这里看到了类似的问题,但我找不到解决问题的方法。我在主线程中有一个简单的NSURLConnection (至少我没有创建任何其他线程),但是我的委托方法没有被调用

代码语言:javascript
复制
[[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];

并且没有调用任何方法,例如

代码语言:javascript
复制
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"didReceiveResponse");
}

self也是NSXMLParser的一个代表,但我认为这不是问题,因为我在同一项目的其他类中使用了它。我已经检查了10次,但没有发现任何问题。

我在这里看到了一些解决方法:http://www.depl0y.com/?p=345,但我不喜欢它,也许有人知道更好的解决方案?谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-24 00:27:54

我知道的唯一原因是有一个单独的线程(它在调用委托方法时已经终止了)。

尝试在创建url连接之前使用NSLog(@"Is%@ main thread", ([NSThread isMainThread] ? @"" : @" NOT"));

票数 27
EN

Stack Overflow用户

发布于 2012-01-10 13:11:16

尝试在主线程上运行您的连接:

代码语言:javascript
复制
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request
                                         delegate:self startImmediately:NO];

[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] 
            forMode:NSDefaultRunLoopMode];
[connection start];
票数 15
EN

Stack Overflow用户

发布于 2010-07-23 23:57:53

自动释放是危险的。对委托的调用是在函数返回之后(异步)进行的。你把它留在别的地方了吗?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3319943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档