sendAsynchronousRequest с tableView reloadData задержка при отрисовке

Я пытаюсь использовать новый sendAsynchronousRequest, добавленный в iOS5. У меня есть класс модели (File) с методом, который запрашивает некоторые данные с сервера, а затем передаю это данные в класс контроллера (FilesController), который создал объект модели.

Класс модели имеет метод со следующим кодом:

[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);
}];

Класс контроллера использует его следующим образом:

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

    NSLog(@"set");

    [self.tableView reloadData];

    NSLog(@"reload");

    activityIndicator.hidden = TRUE;
}];

В консоли я могу сразу просмотреть как NSLogs показывает сообщения "установить" и "перезагрузить", но таблица и индикатор не изменится, пока не пройдет несколько секунд (5-10 с).

Кто-нибудь знает, в чем проблема?

Спасибо.

PD: Я изменил асинхронный запрос на совместимый синхронизированный, а затем проблема исчезла, но я хочу использовать для этого асинхронный запрос.

Это совместимый код синхронизации:

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);
5
задан Javier Martinez Fernandez 17 November 2011 в 15:30
поделиться