Я хочу загрузить файл PDF в контроллер модального представления.
С того момента, как я не знаю размер файла, я хочу загрузить его в отдельном потоке, поэтому:
- (void)viewDidLoad {
[super viewDidLoad];
[[UISharedApplication sharedApplication] setNetworkActivityIndicatorVisibile:YES];
[NSThread detachNewThreadSelector:@selector(loadPDF) toTarget:self withObject:nil];
}
- (void)loadPDF {
NSAutoreleasePool *threadPool = [[NSAutoreleasePool alloc] init];
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
[threadPool release];
[self performSelectorOnMainThread:@selector(showPDF) withObject:nil waitUntilDone:NO];
}
- (void)showPDF {
[self.webView setHidden:NO];
[self.spinner stopAnimating];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
Метод работает довольно хорошо в других файлах (по крайней мере, я предполагаю), где я анализирую некоторые данные XML, но здесь нет. Комментируя:
[self performSelectorOnMainThread:@selector(showPDF) withObject:nil waitUntilDone:NO];
позволяет мне видеть счетчик и индикатор активности сверху. Поэтому я думаю, что:
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
не ждет до конца и возвращает управление вызывающей стороне. Как я могу это исправить?