我在这里看到了类似的问题,但我找不到解决问题的方法。我在主线程中有一个简单的NSURLConnection (至少我没有创建任何其他线程),但是我的委托方法没有被调用
[[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];
并且没有调用任何方法,例如
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"didReceiveResponse");
}
self
也是NSXMLParser的一个代表,但我认为这不是问题,因为我在同一项目的其他类中使用了它。我已经检查了10次,但没有发现任何问题。
我在这里看到了一些解决方法:http://www.depl0y.com/?p=345,但我不喜欢它,也许有人知道更好的解决方案?谢谢
发布于 2010-07-24 00:27:54
我知道的唯一原因是有一个单独的线程(它在调用委托方法时已经终止了)。
尝试在创建url连接之前使用NSLog(@"Is%@ main thread", ([NSThread isMainThread] ? @"" : @" NOT"));
发布于 2012-01-10 13:11:16
尝试在主线程上运行您的连接:
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
[connection start];
发布于 2010-07-23 23:57:53
自动释放是危险的。对委托的调用是在函数返回之后(异步)进行的。你把它留在别的地方了吗?
https://stackoverflow.com/questions/3319943
复制相似问题