web-dev-qa-db-fra.com

comment vérifier si NSString = une valeur de chaîne spécifique?

Bonjour, je me demande si vous pouvez vérifier si une chaîne NSString est égale à une valeur spécifique, par exemple le nom d'une personne?

Je pense dans le sens de

if (mystring == @"Johns"){
    //do some stuff in here
}
67
C.Johns
if ([mystring isEqualToString:@"Johns"]){
    //do some stuff in here
}
142
Vanya

Voici une autre méthode que vous voudrez peut-être utiliser dans certaines circonstances:

NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];

if ([validNames indexOfObject:myString].location != NSNotFound) 
{
    // The myString is one of the names in the valid names array
}

Ou si vous avez un grand nombre de noms dans le tableau, vous pouvez utiliser un NSSet , car la recherche d'un objet est plus rapide que dans un tableau ((O(Log N) Vs O(N))

NSSet * validNamesSet = [NSSet setWithArray:validNames];

if ([validNamesSet containsObject:myString]) 
{
    // This is faster than indexOfObject for large sets
}

Ces méthodes fonctionnent car NSSet et NSArray utilisent isEqual: qui appellera isEqualToString: pour NSString instances.

3
Robert