【发布时间】:2012-05-30 12:58:53
【问题描述】:
NSString*test=[NSString stringWithString:inputString];
NSScanner*scan;
BOOL pass= [scan scanUpToCharactersFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet] intoString:&test];
最后一行使应用程序因访问错误而崩溃。它与地址符号& 有关吗?我不清楚为什么它需要这种语法。
如果inputString 包含任何非字母数字字符,我正在尝试简单地检查我的 BOOL。如果是,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
我想知道实际上测试字符串是否包含非字母数字字符。我如何将这样的测试纳入其中?
【问题讨论】:
标签: iphone objective-c ipad nsscanner