56 votes

NSString indexOf en Objective-C

Existe-t-il quelque chose de similaire à une fonction indexOf dans les objets NSString?

91voto

Airsource Ltd Points 14291

Utilisez -[NSString rangeOfString:] :

 - (NSRange)rangeOfString:(NSString *)aString;
 

Recherche et renvoie la plage de la première occurrence d'une chaîne donnée dans le récepteur.

29voto

orafaelreis Points 835

Si vous voulez simplement savoir quand la chaîne a contient la chaîne b, utilisez ma méthode pour ce faire.

 #define contains(str1, str2) ([str1 rangeOfString: str2 ].location != NSNotFound)

//using 
NSString a = @"PUC MINAS - BRAZIL";

NSString b = @"BRAZIL";

if( contains(a,b) ){
    //TO DO HERE
}
 

Ceci est moins lisible mais améliore les performances

19voto

firestoke Points 414

J'ai écrit une catégorie pour étendre l'objet NSString d'origine. Peut-être que vous pouvez y faire référence. (Vous pouvez également voir l' article sur mon blog aussi.)

ExtendNSString.h:

 #import <Foundation/Foundation.h>

@interface NSString (util)

- (int) indexOf:(NSString *)text;

@end
 

ExtendNSStriing.m:

 #import "ExtendNSString.h"

@implementation NSString (util)

- (int) indexOf:(NSString *)text {
    NSRange range = [self rangeOfString:text];
    if ( range.length > 0 ) {
        return range.location;
    } else {
        return -1;
    }
}

@end
 

1voto

William Falcon Points 3225

Je sais qu'il est tard, mais j'ai ajouté une catégorie qui implémente cette méthode et beaucoup d'autres similaires aux méthodes de chaîne javascript.
https://github.com/williamFalcon/WF-iOS-Categories

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X