我正在加载XML,并在加载数据时“暂停”我的应用程序。有没有办法在主线程以外的线程中进行所有加载?我已经尝试了 syncrhronous 加载思考,这样可以做到这一点,但没有骰子。
到目前为止:
NSString *url = @"url for all my xml";
NSError *error = nil;
NSURLResponse *response = nil;
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSData *data = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error];
答案 0 :(得分:2)
您正在致电sendSynchronousRequest:returningResponse:error:
,来自Apple的文档:
当异步加载系统在专门为此加载请求生成的线程上执行URL加载时,调用线程被阻塞。
如果您对异步方法进行任何调用,例如sendAsynchronousRequest:queue:completionHandler:
,则不会阻止您的主线程。并且应该允许您在后台加载XML时进行UI更新。