web-dev-qa-db-fra.com

Question NSString - méthode rangeOfString

J'ai un problème que je n'arrive pas à comprendre.

J'essaie d'exécuter la méthode rangeOfString sur une chaîne et je ne sais pas comment déterminer si la chaîne n'a pas été trouvée. Par exemple:

NSRange range = [@"abc" rangeOfString:@"d" options:NSCaseInsensitiveSearch range:NSMakeRange(0,3)];

De toute évidence, "d" n'est pas contenu dans la chaîne "abc". J'aimerais pouvoir faire ça:

if(the range is empty since "d" is not in "abc")
   //do something

Quel est le code pour cela?

Merci!!

31
CodeGuy

De la documentation de NSString

-[NSString rangeOfString]

Valeur de retour

Une structure NSRange donnant l'emplacement et la longueur dans le récepteur de la première occurrence d'une chaîne. Renvoie {NSNotFound, 0} si une chaîne n'est pas trouvée ou est vide (@ "").

Il ressemble donc à:

if ([@"abc" rangeOfString:@"d"].location == NSNotFound){
  //Do something

Est la méthode approuvée par Apple.

MODIFIER:

J'ai fait une très mauvaise faute de frappe, je l'ai corrigée, merci Kalle.

72
Jared Pochtar

Vérifiez la longueur de la plage. S'il est différent de zéro, il a été trouvé.

14
Matt Long