NSString*test=[NSString stringWithString:inputString];
NSScanner*scan;
BOOL pass= [scan scanUpToCharactersFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet] intoString:&test];
最后一行使应用程序因访问不当而崩溃。它与地址符号有关&
吗?我不清楚为什么它需要这种类型的语法。
我试图简单地检查我的 BOOL 是否inputString
包含任何非字母数字字符。如果是,pass
则变为 YES。
更新:我看到我完全不了解扫描仪。我理解这个输出:
NSString*test=@"Hello"; // this should cause my BOOL to be NO since no characters are scanned
NSScanner*scanix=[NSScanner scannerWithString:test];
BOOL pass= [scanix scanUpToCharactersFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet] intoString:nil];
NSLog(@"pass is %i for %@",pass, test);
日志中的结果:pass is 1 for Hello
我想知道实际上测试字符串是否包含非字母数字字符。我如何将这样的测试纳入其中?