Comment trouver une chaîne de caractères dans un NSArray?
Cela ressemble à une telle question stupide, mais comment puis-je rechercher une chaîne dans une NSArray
?
J'ai essayé d'utiliser
[array indexOfObjectIdenticalTo:myString]
mais qui nécessite la piqûre d'avoir la même adresse.
Quelqu'un aurait-il des conseils sur la façon de faire cela?
Vous devez vous connecter pour publier un commentaire.
Vous voulez le
indexOfObject:
méthode, qui recherche l'objet par l'envoi de chaque objet du tableau unisEqual:
message.La réponse de pierre est correct.
Une remarque supplémentaire; si vous avez des tonnes et des tonnes de chaînes dans le tableau,
-indexOfObject:
va faire une recherche linéaire. Cela peut s'avérer être un goulot d'étranglement des performances pour lesquelles vous devriez envisager d'utiliser un autre récipient; un NSSet ou NSDictionary, éventuellement (en fonction de ce que les chaînes de moyenne).Un autre piège est de savoir si les chaînes sont toutes relativement similaires et/ou relativement long.
Bien sûr, ne vous embêtez pas à l'optimisation de rien jusqu'à ce que vous avez utilisé les outils d'analyse pour prouver que vous avez un problème de performance.
Vous pouvez utiliser NSOrderSet que le conteneur, la plus de vue dans NSOrderedSet de la Classe de Référence est ci-dessous:
Visite http://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSOrderedSet_Class/Reference/Reference.html
containsObject:
Renvoie une valeur Booléenne qui indique si un objet donné est présent dans le tableau.
Paramètres
anObject
Un objet.
Valeur De Retour
OUI si anObject est présent dans la table, sinon, NON.
Discussion
Cette méthode permet de déterminer si anObject est présent dans le tableau par l'envoi d'un isEqual: message à chacun de les objets du tableau (et en passant anObject en tant que paramètre à chaque isEqual: message).
Déclaré Dans
NSArray.h