UITableView: нужно LiveUpdate (огромное количество ячеек) - PullRequest
0 голосов
/ 28 мая 2010

У меня есть UITableView, который показывает некоторую информацию. Информация из XMLFile. Xml-файл довольно большой, около 500 записей.

Я не хочу, чтобы пользователь ждал окончания анализа, я хочу добавлять ячейку за ячейкой в ​​TableView.

Вот мой код:

-(void) onFinishedPartDownload:(id)item
{
    if(odvTableViewDelegateController.odvs == nil)
        odvTableViewDelegateController.odvs = [NSMutableArray new];

    if([odvTableViewDelegateController.odvs count]==0)
    {
        genericDelegate.tableView.delegate = odvTableViewDelegateController;
        genericDelegate.tableView.dataSource = odvTableViewDelegateController;
    }

    [odvTableViewDelegateController.odvs addObject:item];

    [genericDelegate.tableView reloadData];
}

Этот метод вызывается каждый раз, когда элемент анализируется, но в конце он перезагружает tableView. У меня нет ожидаемого живого обновления, которое я ищу.

Интервал вызова метода составляет от 0,001 до 0,0025 секунд.

Есть идеи, как это исправить?

Себастьян

1 Ответ

1 голос
/ 28 мая 2010

Казалось бы, разбор XML происходит в главном потоке. Вероятно, синтаксический анализатор имеет полный контроль над потоком и не откажется от него, пока анализ не будет завершен. Именно тогда пользовательский интерфейс будет иметь возможность для обновления UITableView, поэтому вы видите, что все происходит в самом конце. Я бы порекомендовал (если у вас уже не реализовано ничего подобным образом) было бы выполнить синтаксический анализ XML для потока, оставив основной поток для обновлений пользовательского интерфейса и другого взаимодействия с пользователем.

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