Как настроить один массив или словарь для использования в нескольких источниках данных? - PullRequest
0 голосов
/ 01 августа 2009

У меня есть несколько TableViewDatasources, которые должны отображать список объектов из одного пула в зависимости от определенного свойства. Например.

object.flag1 is set- it will show up in TableView1
object.flag2 is set- it will show up in TableView2

Очевидным способом было бы иметь отдельные массивы для каждого TableView, но один и тот же объект может появляться в разных массивах. Также мне нужно обновлять объекты очень часто или обращаться ко всем объектам через один и тот же массив.

Как настроить один словарь или массив, чтобы все объекты были в одной структуре?


Чтобы выразить это по-другому: При изменении представления или выбора таблицы приложению необходимо перерисовать TableViews с новыми данными. Прикладная программа должна получить доступ к пулу объектов и осуществлять поиск по ним с помощью итератора и обращаться к каждому объекту и его свойствам.

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

Таким образом, вместо итерации глобального пула объектов я мог бы обращаться к глобальному пулу Dicitonary в виде базы данных, выбирая объекты с полями, которые соответствуют определенным критериям.

Кто-нибудь знает какой-нибудь пример этого?

Ответы [ 2 ]

0 голосов
/ 05 августа 2009

Я был бы склонен создавать прокси-коллекции, которые выступают в качестве источников данных. Эти прокси собирают соответствующие объекты из пула при подготовке своего контента. Не зная масштаба вашего пула и подмножеств, еще слишком рано, чтобы подумать об оптимизации этого.

0 голосов
/ 05 августа 2009

Это звучит как случай преждевременной оптимизации. Если вы не управляете многими сотнями элементов и / или не вызываете слишком частые перерисовки, перебор даже сотен объектов и поддержание пары массивов не потребует достаточных накладных расходов - ни памяти, ни процессора - что будет проблематично.

Реализуйте это простым способом, а затем измерьте, чтобы определить, действительно ли у вас есть проблемы с производительностью.

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