Ich möchte eine PDF-Datei in einem Modal View-Controller laden. Seit dem Moment, dass ich die Größe der Datei nicht kennen, möchte ich es auf einem separaten Thread laden, so:NSThread zum Laden von PDF-Dateien
- (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];
}
Verfahren in anderen Dateien ziemlich gut funktioniert (zumindest glaube ich), wo Ich parse einige XML-Daten, aber hier nicht. Kommentieren:
[self performSelectorOnMainThread:@selector(showPDF) withObject:nil waitUntilDone:NO];
lässt mich den Spinner und die Aktivitätsanzeige auf der Oberseite sehen. Also ich denke das:
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
wartet nicht bis zum Ende und gibt dem Anrufer die Kontrolle zurück. Wie kann ich es reparieren?
Funktioniert gut. Vielen Dank. – IssamTP