2009-08-01 6 views
0

J'ai plusieurs tablesViewDatasources qui ont besoin d'afficher la liste des objets du même pool en fonction de certaines propriétés. E.g.Comment configurer un tableau unique ou un dictionnaire pour une utilisation dans plusieurs sources de données?

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

La façon évidente serait d'avoir des tableaux distincts pour chaque TableView, mais même objet peut apparaître dans différents tableaux. Aussi j'ai besoin de mettre à jour des objets très souvent ou d'accéder à tous les objets à travers le même tableau.

Comment est-ce que je configure un seul dictionnaire ou tableau pour avoir tous les objets dans une structure?


Pour le mettre dans une autre façon: Lorsque de table ou de changements sélection, l'application doivent redessiner TableViews avec les nouvelles données. L'application doit accéder au pool d'objets et les parcourir en utilisant itérateur et accéder à chaque objet et à ses propriétés. Je pense que c'est une opération coûteuse et que vous voulez éviter cela. Peut-être peut-être en faisant un groupe global d'objets un dictionnaire et en exposant les propriétés des objets comme des champs de dictionnaire. Ainsi, au lieu d'itérer le pool global d'objets, j'ai pu accéder à la base de données globale du pool en utilisant des objets dont les champs correspondent à des critères particuliers.

Quelqu'un sait-il un exemple de cela?

+0

Il serait utile de connaître la quantité de données à afficher? – bbum

+0

C'est environ 100 objets. Ce qui m'inquiète, c'est que pour chaque table différente, je dois parcourir tous les objets et accéder à leurs propriétés pour les trier dans des tableaux séparés. – Rod

Répondre

0

Cela ressemble à un cas d'optimisation prématurée. Sauf si vous gérez plusieurs centaines d'éléments et/ou que vous effectuez des redraws très souvent, iterer jusqu'à une centaine d'objets et conserver quelques tableaux n'entraînera pas de frais supplémentaires - mémoire ou processeur - trop compliqué.

Mettez-le en œuvre facilement, puis mesurez-le pour déterminer si vous avez vraiment un problème de performance. Je serais enclin à créer des collections de proxy qui agissent comme les sources de données.

0

Ces proxies rassemblent les objets appropriés du pool lorsqu'ils préparent leur contenu. Sans connaître l'ampleur de votre pool et de vos sous-ensembles, il est trop tôt pour envisager d'optimiser cela.

Questions connexes