我正在尝试使用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
我已将所有这些日志都放入了日志,但没有一个被调用。
我还检查了我的服务器,&它的工作正常。 我也连接到互联网。
任何人都可以抛出一些光,我错过了。
答案 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中的示例。