sendAsynchronousRequest mit tableView reloadData Verzögerung auf ziehen

Ich versuche, die neue sendAsynchronousRequest Hinzugefügt in iOS5.
Ich habe eine Modell-Klasse (Datei), eine Methode, die Anfrage, einige Daten von einem server, und dann gehen diese Daten an die controller-Klasse (FilesController), die das Modell erstellt wurde-Objekt.

Die model-Klasse hat eine Methode mit dem folgenden code:

[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
    NSArray *decodedResponse = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    NSArray *files = [self _dictionariesToFiles:decodedResponse];
    handler(files);
}];

Die controller-Klasse, verwendet es wie folgt:

[File findAll:conditions completionHandler:^(NSArray *files) {
    dataSource = files;

    NSLog(@"set");

    [self.tableView reloadData];

    NSLog(@"reload");

    activityIndicator.hidden = TRUE;
}];

In der Konsole kann ich anzeigen sofort, wie sich der NSLogs zeigt die "set" - und "reload" - Nachrichten, aber die Tabelle und die Anzeige ändert sich nicht, bis einige Sekunden (5-10s) bestanden haben.

Jemand weiß, wo ist das problem?

Dank.

PD: ich habe die async-request mit einem kompatiblen synchronisiert, und dann das problem verschwinden, aber will ein async-request für diese.

Dies ist das kompatible sync-code:

NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSArray *decodedResponse = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
NSArray *files = [self _dictionariesToFiles:decodedResponse];
handler(files);
Schreibe einen Kommentar