отложенная загрузка/запуск текста изменились для uisearchbar в xcode

У меня есть панель поиска и контроллер панели поиска, который отображает проанализированный xml в UItableview с любым изменением символа в поле панели поиска. Проблема заключается в скорости.

В настоящее время требуется некоторое время, чтобы постоянно получать XML-файл и анализировать его при вводе текста в строку поиска.

Есть ли способ оптимизировать это? Например, ленивая загрузка таблицы после поиска и анализа текста панели поиска после ввода слова.

Спасибо


person BlockReader    schedule 18.05.2012    source источник


Ответы (1)


Я бы рассмотрел использование NSOperation.

Храните данные модели в месте, отдельном от источника данных таблицы. Обычно я использую что-то вроде @property (retain, nonatomic) NSArray *data для данных модели и @property (retain, nonatomic) NSMutableArray *tableData для данных, отображаемых в данный момент в таблице. В -searchBar:textDidChange: отмените предыдущую операцию поиска, сбросьте tableData пустым, начните новую операцию поиска. Операция будет выполнять поиск и добавлять результаты в tableData.

Для лучшего взаимодействия с пользователем вместо сброса tableData до пустого с каждым новым символом. Вы можете просто удалить элементы, которые не соответствуют новой строке поиска, перед началом операции поиска. Конечно, вам нужно убедиться, что операция не добавляет элементы в tableData, которые уже есть в ней.

person Jeffery Thomas    schedule 18.05.2012