Je valide un NSString pour m'assurer que la chaîne ne contient pas d'apostrophes.Valider NSString
Le code que je utilise pour ce faire est
NSCharacterSet * invalidNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"'"];
NSScanner * scanner = [NSScanner scannerWithString:string];
NSString * scannerResult;
[scanner setCharactersToBeSkipped:nil];
[scanner scanUpToCharactersFromSet:invalidNumberSet intoString:&scannerResult];
if(![string isEqualToString:scannerResult])
{
return 2;
}
retour 2 représente une erreur. Ce code fonctionne, sauf dans le cas où la chaîne est une apostrophe.
Pour contourner ce problème, j'ai ajouté le code suivant au-dessus du bloc précédent.
if([string isEqualToString:@"'"]);
{
return 2;
}
Ce code est évalué à true, quelle que soit l'entrée. J'ai besoin soit d'empêcher le premier bloc de se bloquer avec l'entrée de ', soit de faire fonctionner le second bloc.
Qu'est-ce qui me manque?
@Chris: Vous pouvez vous appuyer sur la réponse de Chuck si vous avez déjà un ensemble de caractères à vérifier. Donc, si vous construisez un NSCharacterSet avec tous les caractères illégaux, vous pouvez faire quelque chose comme si (([string rangeOfCharacterFromSet: invalidSet]). Location! = NSNotFound) // faire quelque chose –