当我
Logger *logger = [Logger new];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
__unused NSURLConnection *conn = [[NSURLConnection alloc]
initWithRequest:request delegate:logger startImmediately:YES];
......没有任何反应。在我
之前不会调用委托方法[[NSRunLoop currentRunLoop]run];
我原以为startImmediately:YES
就是这么做的。
答案 0 :(得分:4)
异步回调需要NSRunLoop。参见:
Cocoa: NSURLConnection not attempting an HTTP Request
命令行应用程序默认没有NSRunLoop - gui apps。
initWithRequest:委托: 返回初始化的URL连接,并开始加载URL请求的数据。
- (id)initWithRequest:(NSURLRequest *)request delegate:(id < NSURLConnectionDelegate >)delegate
...为了使连接正常工作,调用线程运行 循环必须在默认的运行循环模式下运行。看到 scheduleInRunLoop:forMode:更改运行循环和模式。