NSURLConnection没有调用委托方法

时间:2012-07-20 12:18:12

标签: ios nsurlconnection

我正在尝试使用NSURLConnection与我的服务器建立连接。我之前已经实现了很多次,但目前它在任何情况下都没有调用它的委托方法(成功/失败/超时)。我无法理解为什么会这样。

以下是我写的代码。

在.h我实施了NSURLConnectionDelegate

in .m

这是调用,我已经通过放置日志来检查。

 self.connection = nil;
 self.connection = [[NSURLConnection alloc] initWithRequest:MyRequest delegate:self    startImmediately:YES];

我的连接对象不是零。

我实施的委托方法是

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection 

我已将所有这些日志都放入了日志,但没有一个被调用。

我还检查了我的服务器,&它的工作正常。 我也连接到互联网。

任何人都可以抛出一些光,我错过了。

2 个答案:

答案 0 :(得分:1)

是的,问题得到了解决。

我使用performSelectorOnMainThread在主线程上调用了我的createConnection。

答案 1 :(得分:1)

实际上有更好的解决方案,如果您正在滚动tableview等,则不会阻止您的连接委托回调。

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self  startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];

当然你也可以在其他线程中调用NSURLConnection。查看github中的示例。