在我的班级中,我创建了一个CBUrlConnection:
urlConnection = [NSURLConnection connectionWithRequest:request delegate:self];
[urlConnection start];
但我没有得到任何回复,这些委托方法永远不会被调用:
- (void)connection:(NSURLConnection *)connection didFinishLoadingData:(NSData *)data error:(NSError *)error
- (void)connection:(NSURLConnection *)connection didUpdateProgress:(CGFloat)percent
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
请求似乎是正确的,服务器URL肯定是正确的,服务器正常工作。可能有什么不对?
答案 0 :(得分:4)
我刚修好了......那是因为代码没有在主线程上运行。
对于可能感兴趣的人我已经解决了:
dispatch_sync(dispatch_get_main_queue(), ^{
});
答案 1 :(得分:1)
您绝对可以在NSURLConnection
内运行NSOperation
。
实际的技巧是NSURLConnection
需要一个运行循环。请参阅http://www.cocoaintheshell.com/2011/04/nsurlconnection-synchronous-asynchronous/和https://stackoverflow.com/a/6238764/171933