повышение производительности uitableview

#iphone #ios #uitableview #nsdictionary

#iPhone #iOS #uitableview #nsdictionary

Вопрос:

У меня есть это приложение, в котором я разрешаю пользователю настраивать поисковый запрос на основе значений, выбранных им из множества XML-данных, которые затем будут использоваться для поиска информации в базе данных.

На данный момент у меня есть 3 ячейки, которые могут принимать параметры поиска для запроса, каждая ячейка загружает свои данные в один и тот же uitableview, поэтому мне приходится немного подтасовывать свои операторы if, чтобы убедиться, что все работает правильно для правильного набора данных.

первая ячейка позволяет пользователю выбрать производителя мотоцикла, все производители перечислены в табличном представлении. загружаемый XML-файл имеет ключевое значение, связанное со вторым списком, в котором перечислены модели каждого manfacture. Я хочу настроить список производителей на основе выбора производителя, как только пользователь выберет tableviewcell.

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

На данный момент все выполняется при каждой загрузке вложенного представления.. итак, поскольку мой список производителей настолько велик, когда пользователь выбирает производство, которое он хотел бы найти, когда возвращается к подвиду с выбранным производителем, идентификатор должен быть сопоставлен с каждой отдельной моделью каждого отдельного производства, чтобы отобразить список, что занимает очень много времени.

Я хотел бы знать, как бы вы попытались сделать что-то подобное. ниже приведена блок-схема того, как я собираюсь это сделать. Я хотел бы получить несколько комментариев / предложений о том, считаете ли вы, что я делаю это правильно или нет, а также о том, как даже попытаться это сделать. введите описание изображения здесь

любая помощь была бы с благодарностью принята (если вы не можете прочитать текст на изображении, вы можете щелкнуть правой кнопкой мыши «Сохранить на рабочий стол» и сделать его намного больше)

Ответ №1:

Чтобы сделать это правильно, вы, вероятно, захотите использовать в своем приложении какую-то структуру данных, которая позволяет выполнять быстрые запросы, а не выполнять многократный синтаксический анализ вашего входного файла xml.

Для простого решения «из первых рук» вы могли бы проанализировать XML-файл в NSDictionary и запросить его для отношений Производитель -> Модель. Вы можете создать NSDictionary один раз из XML-файла, затем сохранить результат где-нибудь, и поиск будет намного быстрее, чем просмотр XML каждый раз.

Для чего-то более надежного стоило бы изучить возможность использования CoreData для хранения вашей взаимосвязи Производитель -> модель. Это потребовало бы больше кода от вашего имени, но дало бы вам гораздо более приятную объектную модель.

Комментарии:

1. хммм.. Мне нужно изучить этот объект modle.. Я пытался сделать это несколько раз, но я немного запутался.. Просто чтобы добавить к этому вопросу, могу ли я получить доступ к SharedCache из другого представления?