2011-04-21 4 views
0

Y at-il un moyen de détecter si un NSString ne contient pas un caractère spécifique (dans ce cas, c'est un "-")? Par exemple, si j'ai le NSString @"-OU" et le NSString @"YOU" est-il un moyen de déclencher un UIAlert lorsque la chaîne est @"YOU" et non @"-OU"?Vérifiez si NSMutableString ne contient pas un caractère spécifique

EDIT: Au fait j'essaye de rendre ceci dynamique pour n'importe quelle chaîne. J'ai actuellement le code suivant et que vous souhaitez savoir si cela peut fonctionner:

- (BOOL) isDone:(NSString *)str{ 

     unichar dash = '-'; 

    for(int i = 0; i < [str length]; i ++){ 
     if([str characterAtIndex:i] != dash){ 
      return YES; 
     } 

     else{ 
      return NO; 
     } 
    } 

} 

Ce code est actuellement lancer l'avertissement suivant dans Xcode: « Le contrôle peut atteindre la fin de la fonction non vide ».

Répondre

0

si vous essayez de tester si le tableau de bord est dans le mot du tout en utilisant votre propre fonction de construction que je le ferais de cette façon

- (BOOL) isDone:(NSString *)str{ 

     unichar dash = '-'; 

    for(int i = 0; i < [str length]; i ++){ 
     if([str characterAtIndex:i] == dash){ 
      return YES; 
     } 

    } 
    return NO; 

} 

De cette façon, il bouclera à travers la chaîne entière jusqu'à ce qu'il trouve le tiret, et se terminera dès qu'il trouve le tiret, sinon il retournera NO une fois qu'il a terminé de vérifier la chaîne entière.

+0

ahhh bonne prise merci! Mais en fait j'ai besoin d'inverser le OUI et le NON dans votre exemple (fait pour vous). – locoboy

+0

notez que, j'ai changé l'instruction if de! = À == pour simplifier les choses, mais encore une fois tout dépend de la valeur que nous cherchons à retourner. – Mike

+0

cochez la réponse ci-dessous - en utilisant 'rangeOfString' – John

5

essayer cette

NSString *[email protected]"-OU"; 
if ([yourString rangeOfString:@"-"].location == NSNotFound) { 
    NSLog(@"string does not contain -"); 
} else { 
    NSLog(@"string contains -"); 
} 
+0

voir ci-dessus édite – locoboy

+0

Je ne suis pas sûr de ce que vous essayez de faire, êtes-vous juste en train de tester si le premier caractère est un tiret ou pas? si oui alors pourquoi faire la boucle? Votre boucle est terminée après le premier caractère, que ce soit vrai ou faux. – Mike

+0

J'essaie juste de tester s'il y a un tiret dans le mot. – locoboy

Questions connexes