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
私が知りたいのは、実際にテスト文字列に英数字以外の文字が含まれているかどうかを知ることです。そのようなテストをこれにどのように組み込むことができますか?