2011-05-31 10 views
3

J'ai beaucoup de NSDictioanries dans un NSArray. Comme il y a environ 1300 d'entre eux, et je dois chercher à travers eux en fonction des critères suivants:Recherche dans un tableau de dictionnaires avec plusieurs critères

1. Name 
2. DOB 
3. Type 
4. Grade 
5. Condition 
6. PUP 
7. Unit Number 

Voici un exemple d'un tel dictionnaire:

<Unit> 
<UnitNumber>20110501100507134</UnitNumber> 
<Name>01'' 2ply Mat</Name> 
<DOB>3/24/2011 12:00:00 AM</DOB> 
<Type>2ply Mat</Type> 
<Grade>Cull</Grade> 
<Condition /> 
<Depth>01</Depth> 
<Width>01</Width> 
<Length>01</Length> 
<PUP>Cable</PUP> 
<Finishing /> 
</Unit> 

En ce moment, je pense à des en boucle dans le tableau, recherchez le premier critère, puis bouclez de nouveau à travers le tableau filtré et recherchez le deuxième critère et ainsi de suite .... Mais c'est 7 pour les boucles, à travers au moins 1300 dictionnaires.

Quelles sont mes alternatives? Merci. MISE À JOUR: Ok pour chacun des critères que j'ai énumérés ci-dessus, je vais avoir un champ de texte, et l'utilisateur va spécifier les critères ici, puis appuyez sur le bouton de recherche ... (si cela rend les choses plus claires)

en outre, c'est pour iPhone/iPad

+0

Je suis désolé, mais je suis confus, est-ce que l'utilisateur cherche dans ces dictionnaires? Et si oui, est-ce qu'il tape une ficelle, puis il les parcourt et retourne des résultats non filtrés? S'il vous plaît, expliquez. Aussi est-ce destiné aux utilisateurs d'iPhone ou de Mac? –

+0

merci pour la réponse. mis à jour ma question avec plus d'infos. – user635064

Répondre

7

Eh bien, il est un moyen facile de le faire, vous pouvez utiliser NSPredicate pour rechercher votre tableau en fonction des critères que vous avez mentionnés ci-dessus.

En bonus, si vous souhaitez afficher ce tableau de manière triée, vous devez utiliser NSSortDiscriptor.

0

Ok, la recherche de grandes quantités de données sera toujours difficile, surtout sur un iPhone/iPod. Dans ce cas, ce que je pense que vous devriez faire est de permettre à l'utilisateur de faire une recherche basée sur l'un de ces critères, et de simplement effectuer une recherche dans les tableaux individuels contenant ces données. Un exemple d'un de ces tableaux pourrait être

array

matt

bob

mrlol

/array

Ensuite, utilisez le numéro d'index de ce tableau et l'extrait du dictionnaire en question. Cela peut ne pas avoir été l'explication la plus claire, s'il vous plaît commenter si vous avez des questions. Edit: À la réponse précédente, je ne pense pas qu'il demandait comment comparer les données, je pense qu'il voulait un moyen de rechercher dans les données, donc je ne pense pas que NSPredicate était ce qu'il cherchait.

1

Bien que la réponse de @ Robin soit correcte, vous pouvez également envisager d'utiliser certains des supports de base de données intégrés, tels que Core Data.

Questions connexes