NSMutableArray et NSPredicate de filtrage
Je suis en train de filtre de mon tableau avec deux entités au sein d'un objet que j'ai un objet Personne en qui j'ai le nom, adresse, numéro de téléphone, e-mail, etc. Je suis en train de filtrer ma liste de tableau d'objets avec juste le nom et le numéro. Comment cela peut-il être réalisé avec l'aide de NSPredicate?
Je pense que voici une bonne réponse.
Qu'avez-vous déjà essayé? Ce qui s'est passé? Avez-vous vérifié la documentation ou des exemples sur le web? Avez-vous de la recherche stackoverflow pour des questions similaires? Avez-vous eu du mal à les comprendre?
Qu'avez-vous déjà essayé? Ce qui s'est passé? Avez-vous vérifié la documentation ou des exemples sur le web? Avez-vous de la recherche stackoverflow pour des questions similaires? Avez-vous eu du mal à les comprendre?
OriginalL'auteur kforkarim | 2011-12-08
Vous devez vous connecter pour publier un commentaire.
Créer le prédicat (ce qui suit suppose que votre
Person
classe aname
etnumber
les propriétés de la chaîne):Ensuite, filtrer le tableau (cela suppose que vous avez un
NSArray
dePerson
objets):Le résultat sera un tableau qui contient
Person
objets dontname
pourrait être “Steve”, “Steven”, etc, et dont le numéro commence par555-
.Modifier
Ce que vous dites n'a pas vraiment de sens. Vous ne pouvez pas supprimer les propriétés d'une classe (ou plutôt, vous ne devrait pas). Si vous voulez juste un tableau qui contient uniquement les noms et les numéros que vous aurez à parcourir le tableau de
Person
objets:c'est exactement ce que je cherchais, merci. Je pense que vous ne pouvez pas faire de même avec nspredicate? Juste curieux de savoir si c'est possible.
Les prédicats sont utilisés pour déterminer si un objet correspond à un ensemble de règles ou pas, ils ne sont pas pour transformer un objet en un autre.
Si c'est exactement ce que vous recherchez, pourquoi avez-vous accepté l'autre réponse?
parce que les deux réponses sont correctes, d'une manière ou d'une autre, juste une approche différente.
OriginalL'auteur dreamlax
je crois que vous êtes à la recherche pour:
ou si vous voulez des similitudes de noms de chaîne vous pouvez également utiliser:
et en supposant que le numéro de téléphone est juste un int, vous pouvez utiliser ==, <, <=, etc pour le nombre de comparaisons
puis l'appliquer avec:
NSPredicate va supprimer tous les non entrées correspondantes de la matrice. Il ne sera pas de les supprimer du tableau, mais il sera de retour une deuxième filtré tableau avec seulement les objets qui correspondent le prédicat
NSArray sont immuables vous ne pouvez pas supprimer les articles en eux. Chaque méthode qui permettrait de changer un NSArray, sera de retour avec un nouveau tableau. Si vous utilisez NSMutableArray c'est une autre histoire, mais ici je ne pense pas que NSMutableArray sont nécessaires, il vous suffit de prendre le retour de tableau et de travailler avec elle.
OriginalL'auteur user1084563
Je préfère utiliser
CONTAINS
mot pour faire du filtrage. Il est facile de faire ce travail. Ou vous pouvez les combiner:Vous pouvez vous référer à OFFICIEL DOC:
bon point, thx! 🙂
Vous êtes les bienvenus, merci d'avoir accepté 🙂
OriginalL'auteur Kjuly
feedType
est la propriété d'un objet Personnalisé à comparer etarrayTotalFeed
est le tableau d'objets Personnalisés.OriginalL'auteur Anjali Prasad