1

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

下面是我写的代码。

在 .hi 中实现了 NSURLConnectionDelegate

这被调用了,我已经通过放置日志进行了检查。

 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 

我已将所有日志都放入其中,但没有一个被调用。

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

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

4

2 回答 2

1

是的,问题得到了解决。

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

于 2012-07-24T11:04:40.900 回答
1

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

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

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

于 2013-06-28T07:48:55.257 回答