最近在学IOS开发,正试着写个花瓣网图片批量下载的APP,过程中遇到个问题:我起了一个子线程用来,通过不断的发请求,接受响应来异步下载图片,从而可以边下载,边在主线程中执行其他操作。起初,是直接在主线程中调试代码,图片下载很顺利,链接URL部分代码如下:
NSURL *boardURL = [NSURL URLWithString:[boardURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:boardURL];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
// NSLog(@"%p--%p", [NSThread mainThread], [NSThread currentThread]);
[conn start];
后来用NSThread新建了个子线程,把上面的代码放到子线程的方法调用。结果NSURLConnectionDataDelegate代理方法- (void)connection: didReceiveResponse: 等都没有执行,即没有收到响应。注意,并不是网络问题,同样条件下在主线程中是OK的。自己思考了下,应该是服务器返回响应了,但是没能传输到子