2009-10-09 7 views
-1

J'essaie de filtrer un NSMutableArray. Recherche tableau pour les articles par certains pays. J'ai essayé NSpredicate qui fonctionne très bien mais j'ai besoin de réutiliser le tableau original que je ne peux pas avec NSpredicate. Donc j'essaie le code ci-dessous.Filtrer un index NSMutableArray au-delà des limites Problème

Q. Quelle est la meilleure façon de filtrer un NSMutableArray en conservant le tableau d'origine intact?

// Le code suivant fonctionne

filteredArray = [[NSMutableArray alloc] init];

unsigned int i;

for (i = 0; i < [count appDelegate.arrayToBeFiltered]; i ++) {

session id = [appDelegate.ads objectAtIndex: i];

id Pays = [[appDelegate.arrayToBeFiltered objectAtIndex: i] TheCountry];

[filteredArray addObject: session];

// Cependant quand j'ajoute l'instruction if comme ci-dessous je reçois l'index au-delà des limites

filteredArray = [[NSMutableArray alloc] init];

unsigned int i;

for (i = 0; i < [count appDelegate.arrayToBeFiltered]; i ++) {

session id = [appDelegate.ads objectAtIndex: i];

id Pays = [[appDelegate.arrayToBeFiltered objectAtIndex: i] TheCountry];

si (Pays == @ "États-Unis") { [filteredArray addObject: session]; }

Répondre

0

utilisation - (NSArray *) filteredArrayUsingPredicate: (NSPredicate *) prédicat

Comme un côté note, dans le code ci-dessus vous dire probablement faire [Pays isEqualToString: @ "États-Unis"]

En remarque supplémentaire - ne pas mettre en majuscules les noms de variables et de méthodes. Juste une chose de style, mais la capitalisation est généralement réservée aux noms de classe

+0

Cela a fonctionné très bien. PS Je vais régler le style. –

Questions connexes