(iOS 5) при получении списка учетных записей Twitter зависает TableView? - PullRequest
8 голосов
/ 03 ноября 2011

Я пытаюсь получить список учетных записей Twitter для загрузки UITableViewController, который содержит данные.Я использую эту функцию:

- (void)viewDidLoad {
    [accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
       ...
       [[self tableView] insertRowsAtIndexPaths ...];
       [[self tableView] reloadData];
       NSLog("This message appears immediately");
       ...
    }];
    NSLog("This message appears immediately");
}

По какой-то причине интерфейс "зависает" на 5 секунд, прежде чем таблица действительно обновляется / перерисовывается (обратите внимание, что я вызываю reloadData!).Все мои сообщения журнала распечатываются сразу, поэтому я не уверен, что вызывает зависание интерфейса.

1 Ответ

16 голосов
/ 04 ноября 2011

All

Итак, я понял (вроде). Я предполагаю, что это как-то связано с потоками, я не должен был делать какие-либо вещи в этом потоке.

Чтобы исправить это, я окружил содержимое таблицы некоторым диспетчерским кодом:

[account requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) 
 { dispatch_async(dispatch_get_main_queue(), ^{
     ...
});}];

Еще нужно понять, что здесь происходит, но, надеюсь, это поможет, если кто-то столкнется с той же проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...